sepeartion of io into seperate library