public boolean processField(final int id) throws NoCleanEquipmentException {
        boolean fieldProcessed = true;
        Equipment plow, tractor, seeder, combine;

        NormalFertilityField fieldToModify = getFieldById(id);
        // String currentStatus = fieldToModify.getStatus().toLowerCase();

        FieldStatuses currentF = fieldToModify.getStatus();
        // FieldStatuses f = FieldStatuses.cut;
        // EquipmentTypes e = EquipmentTypes.combine;

        switch (currentF) {
        case CUT:
            plow = findCleanEquipment(EquipmentTypes.PLOW);
            tractor = findCleanEquipment(EquipmentTypes.TRACTOR);

            if (plow != null && tractor != null) {
                fieldToModify.plowField();
                plow.makeDirty();
                tractor.makeDirty();
            } else {
                fieldProcessed = false;
                throw new NoCleanEquipmentException("No clean equipment found!");
            }
            break;
        case PLOWED:
            seeder = findCleanEquipment(EquipmentTypes.SEEDER);
            tractor = findCleanEquipment(EquipmentTypes.TRACTOR);

            if (seeder != null && tractor != null) {
                fieldToModify.sowField();
                seeder.makeDirty();
                tractor.makeDirty();
            } else {
                fieldProcessed = false;
                throw new NoCleanEquipmentException("No clean equipment found!");
            }
            break;
        case SOWED:
            combine = findCleanEquipment(EquipmentTypes.COMBINE);

            if (combine != null) {
                fieldToModify.cutField();

                // Check if new grain was added
                if (fieldToModify.getStatus() == FieldStatuses.CUT) {
                    kgOfGrain += fieldToModify.getArea();
                    combine.makeDirty();
                }
            } else {
                fieldProcessed = false;
                throw new NoCleanEquipmentException("No clean equipment found!");
            }
            break;
        default:

            fieldProcessed = false;
            break;
        }
        return fieldProcessed;
    }