added SplObserver