separate io subproject