move all form logic to plugin so everything can be overridden