small framework for form workflow