add events, magic methods to model