added attributes and validations