Added the basic IO.

IO Exceptions are left uncaught right now, so that needs to be fixed.
Merge branch 'io'