traversing methods
refactors...