moved virtualio into seperate lib, so later it can be used by the vm.