Refactor CSObserver using CSEigen