Implement I/O abstraction layer. Finally.
149 files changed