public String moveChecker(int iStart, int iDest) {
        String result = null;
        int moveDistance = Math.abs(iDest - iStart);

        if(iStart == iDest) return "Cannot move to same position";
        
        result = haveCorrectDie(moveDistance);
        if (result != null) return result;
    
        result = validatePositions(iStart, iDest);
        if (result != null) return result;

        getActualPip(iStart).removeCheckers(currentPlayer, 1);
        if(getActualPip(iDest).getNumCheckers(nonCurrentPlayer().getId()) == 1) {
            getActualPip(iDest).removeCheckers(nonCurrentPlayer(), 1);
            getActualPip(25).addCheckers(nonCurrentPlayer(), 1);
        }
        getActualPip(iDest).addCheckers(currentPlayer, 1);

        dice.removeDie(moveDistance);
        
        if(dice.getRoll() == null) {
            switchPlayer();
        }
        return null;
    }