How to build forms that don’t suck