begin implementing of pathwalker with observer pattern