http://guides.rubyonrails.org/active_record_validations_callbacks.html#performing-custom-validations