Changed the callback listeners to take the abstract model interface as the "this" value instead of just passing in the model. This will allow users to more safely edit the abstract model in callback listeners.