seperated orchestration logic from vm