Solved: #5 (Observer refactoring)