form submission now binds to a struct