Update the models and migrations
Pull out the observer stuff from the base model