restructuring to prepare for collective IO