added features to models and added userController functions