Made some improvements to model and validations