customer model and validations