Extract different forms into their own namespaces and files, core was getting messy.