add vm_train()