Wired up the io monad back again