Lots of work unifying and splifying the form handling