Use walk() to simplify logic - closes #13