IO Package

* Port over the IO package.
* Final polish before alpha.