Refactor ObserverWithCash() ann add test notyfiedObserverWithcachedValue