added interfaces and local cache class