added IOffRoadMachine interface and OffRoadMachineException