introduce ApiMachine