Partial re-factoring of the observer