added migrations, relationships, and validations