user validations and tests