refactored User into User and UserForm since it was being overloaded for
two different use cases