implemented SparseGraph methods, may still require some work