Refactor and Simplify Observer.