moved iofunction into m3PGIO