add some graph algos