moved validations to service