Added Observer Patterns