replacing the two db models with a single instance
updating method name
adding null checks to controller level
adding lots of 'reflection' methods to user model