added is_vm check