abstracted out validations