removed "alreadyVisited"

removed in order to make code as simple as possible to understand
("alreadyVisited" was only there for performance reasons)
extracted "addChildren" method
removed "contains" from TreeSearchStrategy

removed in order to keep things as simple as possible