Added Caching functionality, used Startswith for Search and implemented
substitude API