@Override
    public Mower move(RectangularLawn lawn) {
        L.debug("move from " + this);
        switch (orientation) {
        case E:
            if (x < lawn.getWidth() - 1)
                x++;
            break;
        case W:
            if (x > 0)
                x--;
            break;
        case N:
            if (y < lawn.getHeight() - 1)
                y++;
            break;
        case S:
            if (y > 0)
                y--;
            break;
        }
        L.debug("> to " + this);
        lawn.mow(getX(), getY());
        return this;
    }