public void movePlayer(int count) {
        final Player player = players[currentPlayer];
        prevPosition = playerPositionMap.get(player);
        this.count = count;
        
        if (prevPosition >= 0) {
            
            if (verifyMove(prevPosition, count)) {
                BoardImpl.getInstance().move(player, prevPosition, count);
                int newPosition = prevPosition + count;
                playerPositionMap.put(player, newPosition);
                //player.setMoves(player.getMoves() + 1);
		
                if (playerPositionMap.get(player) == 99) {
                    if (currentPlayer == 0) {
                        moves++;
                        BoardImpl.getInstance().getSidePanel().getMovesLabel().setText("Moves: " + moves);
			gameStatus = GameStatus.WIN;
		    } else {
			gameStatus = GameStatus.LOSE;
		    }
                    endGame(gameStatus);
		    return;
                }
		
                if (currentPlayer == 0) {
                    moves++;

                    BoardImpl.getInstance().getSidePanel().getMovesLabel().setText("Moves: " + moves);
                }

		int y = BoardImpl.getInstance().getLocation(newPosition).y;
		int x = BoardImpl.getInstance().getLocation(newPosition).x;
		if (GlobalConstants.boardData[y][x] != null) {
                    
		    //recursive call
                    //really, this method call will never exceed a depth of 1
		    movePlayer(GlobalConstants.boardData[y][x].getDestination() - prevPosition - count);
                    return;
		}
                
            } else {
                BoardImpl.getInstance().indicateImpossibleMove();
            } 
        } else {
            
            if (count == 6) {
                playerPositionMap.put(player, 0);
                BoardImpl.getInstance().placePlayerOnBoard(player);
                BoardImpl.getInstance().getSidePanel().getSeedsPanel().removeSeed(
                        currentPlayer == 1 ? Seed.WHITE_SEED : Seed.BLACK_SEED);
            }
                
		if (currentPlayer == 0) {
                        moves++;
                BoardImpl.getInstance().getSidePanel().getMovesLabel().setText("Moves: " + moves);
                }
                
        }
        GameWindow.getInstance().drawGameGraphics();
        
        /**Point p = ((CellImpl) BoardImpl.getInstance().getCell(prevPosition)).getLocationOnScreen();
        Dimension dim = ((CellImpl) BoardImpl.getInstance().getCell(prevPosition)).getSize();
        GameWindow.getInstance().getGlassPane().repaint(p.x, p.y, dim.width, dim.height);
        Point p2 = ((CellImpl) BoardImpl.getInstance().getCell(prevPosition + count)).getLocationOnScreen();
        GameWindow.getInstance().getGlassPane().repaint(p2.x, p2.y, dim.width, dim.height);*/
        
        passPlayerControl();
    }