updated the form handling so we can reuse them more easily in other modules with custom controllers