#47 solution observer refactoring