@Override
    public boolean drawEdge(int row, int col, Edge edge) {
       
         Box selectedBox = this.getSelectedBox(row, col);
         //find the adjacent box and draw the edge on opposite side
         Box adjBox =this.getAdjBox(row, col, edge);
         
         boolean isEdgeDrawn = false;
         boolean isAdjEdgeDrawn = false;
        //TODO-need to check if game is over too
        if(selectedBox == null || edge == null || !isInitialized ){
            throw new DABException();
        }
        
        //if the box is already owned then we dont want to draw an edge on it
        if(selectedBox.getOwner() == null){
        
            isEdgeDrawn = selectedBox.drawEdge(edge, currPlayer);
           
            //if selected box is not on the outer edge of the grid
            if(adjBox != null ){
                isAdjEdgeDrawn = adjBox.drawEdge(edge.opposite(), currPlayer);
            }
             
            //if the edge is drawn then next player should go unless player 
            //scored
            if(selectedBox.getOwner()==null){
                currPlayer = currPlayer.next();
            }else{
                this.addPointToPlayer(currPlayer);
                
                //if the adjacent box has an owner and there was a line drawn 
                //on the last turn on that adjacent box then award another point
                if(adjBox.getOwner()!=null && isAdjEdgeDrawn){
                    this.addPointToPlayer(currPlayer);
                }
                
            }
         }
         
         return isEdgeDrawn;
         
    }