working on new traversal code, broke off neighbor finding to its own function