Refactor and start work on observers.