add routes and caching