added input/output compartments