VM design