add abstract super class for edges and edgeWeightedGraphs