implemented most of dependencies, moved CachingState initialization into Init()
added some UI and few tests