new edge weighted alg