added route caching

could be better