follow Graph convention G(V,E)