added routes and caching