#3: support vm copy