Handle files without offsets
Test a pass on balancing
Actually move data around with an Executor thread pool