working on io model