working on io input