public boolean moveSeeds(int position){
        if ( !isValidTurn(position) )
            return false;

        int iRelativePosition = this.absolutePosition(position);
        int iTempPosition = iRelativePosition;
        int iNumberOfTakenSeeds = aBowls.get(iRelativePosition).takeAllSeeds();
        for (int i = 0; i < iNumberOfTakenSeeds; i++){
            iTempPosition++;
            if (iTempPosition == aBowls.size()){
                iTempPosition = 0;
            }
            aBowls.get(iTempPosition).putSeeds(1);
        }
        if (this.isAbleToSteal(iTempPosition)){
            aBowls.get((bIfTurnOfFirst) ? iPositionOfTray1 : iPositionOfTray2)
                    .putSeeds(aBowls.get(iTempPosition).takeAllSeeds());
            int iPositionOfStolenBowl = (bIfTurnOfFirst) ?
                    iPositionOfTray1 + (iPositionOfTray1 - iTempPosition) :
                    iPositionOfTray2 - iTempPosition - 1;
            aBowls.get((bIfTurnOfFirst) ? iPositionOfTray1 : iPositionOfTray2)
                    .putSeeds(aBowls.get(iPositionOfStolenBowl).takeAllSeeds());
        }
        this.changeTurn();

        return true;
    }