prework for threading

this breaks out the tile building into a single call per tile. this function can then be used as the thread work function in the forthcoming pr