The logic to call the add observers methods should probably be taken out of the standard lifeCycles and placed into their own dedicated methods in a general trait. I say this because this logic is general enough that it shouldn't need to be re-implemented for every model (should be in one of the Observer traits as well probably). Overriding lifecycles in the model should be done when there is some logic needed that's for that specific model only, I think.

Thoughts?