added vm.hpp