Actually support ActiveModel validations and callbacks