added some not implemented exception
added lru cache implementation