add deep first search