finished io-model support #4