fixed an incorrect assumption about instance of IO