private void moveForward() {

        int newX = getPositionX();
        int newY = getPositionY();

        switch (getFacing()) {
            case NORTH:
                newY++;
                break;
            case EAST:
                newX++;
                break;
            case SOUTH:
                newY--;
                break;
            case WEST:
                newX--;
                break;
            default:
        }

        //we want to check we aren't going off a cliff, or into another rover
        if (checkValidPosition(newX, newY)) {
            setPositionX(newX);
            setPositionY(newY);
        }
        else {
            System.err.println("Invalid position! Can't move to " + positionX + " " + positionY + " so staying put.");
        }
    }