adding helper neighbor function to get node objects
changed a lot of structure and duplicate node making to add depth first traversal
breadth first implemented