Added more functions and properly setup the classes. Implemented DFS,
still needs debugging