added include guards
moved graph algorithms to separate files