opt some ops out of parallelization
buffer: protect get_tile with tile_storage instead of 2d list of tiles