walk array methods refactored to reduce code duplication