rewrite chunkloader to async loading