added some models and refactored some models