Added a combination of depth first and breadth first search to find items