added IO capabilities

The IO modifications should be in the IO_testing branch.