simplifying constructions and assumptions for io