public List<Edge> updateConnectivity(List<Node> nodes, List<Edge> current)
  {
    HashSet<Edge> rtn = new HashSet<Edge>();
    
    for(Node a : nodes)
    {
        for(Node b : nodes)
        {
            if(a != b)
            {
                if(a.distance(b) <= radius())
                {
                    Edge tempConnection = null;
                    try{ tempConnection = new Edge(a,b); }
                    catch(Exception e) { System.err.println(e); System.exit(1); }
                    if(a.distance(b) <= innerRadius())
                    {
                        rtn.add(tempConnection);
                    }
                    else
                    {
                        if(current.contains(tempConnection))
                        {
                            rtn.add(tempConnection);
                        }
                        else if(a.distance( ((MobileNode)b).previousLocation()) > radius() &&
                                new Random().nextDouble() > probability())
                        {
                            rtn.add(tempConnection);
                        }
                    }
                }
            }
        }
    }    
    return new ArrayList<Edge>(rtn);
  }