added models,validations, and associations