preload per route, with chunking