Add callbacks and validations