wrote models, tests, validations