updates to i/o