+ implement bidirectional search
+ implement downward search