made it a little easier to interact with the vm separate from the built-in toplevel method