basic I/O design - #12, #15

proposal #3