added limited depth breadth first search