Longest path is working

Longest path is working. But there should be more efficient way to do this. And currently I am using depth first search, which is probably the wrong way to do this. Will switch to breath first search in next version