implement validations: presence, length, uniqueness, numericality