added factories and validations