refactor walker