MachineImpl is abstract