expanded upon virtualmachine