moved IO class to project's common part