Merge Observer Refactor