Add ObservableEvent class
Add test