built out some simple I/O functionality