starting to work on io lib