More documentation for IO

fixes #630 
you're using imperative here, but procedural above. recommend picking one (I like procedural slightly better)