extracted walker class