Reworking i/o