re-factoring walker interface