added migration and validations and methods