added ObservableFirer and ObservableFirerSpec