Fix the VM infrastructure, and move the private header into the correct place.