Commit work from Chapter 7: I/O