VirtualMachine refactored