1. A method for abstracting a VM environment, comprising a plurality of virtual machines connected through virtual connections to form a VM network; providing a GUI (graphical user interface); providing a graphical representation of the VM environment through said GUI, wherein each virtual machine is shown as a separate component and wherein virtual connections between said virtual machines are shown to form a VM network; overlaying said abstraction over a hardware device, wherein said abstraction is of both the hardware and software components of the VM environment and wherein a plurality of VM machines is operated by a single hardware device; managing said virtual machines through said abstraction, wherein said managing comprises communicating with each VM machine as a separate device and altering at least one aspect of said VM network by manipulating said graphical representation of the VM environment; discovering a new VM machine on a VM network connected to said VM machine; and adding a new VM machine to a VM network connected to said VM machine.