Refactor and up to get rid of some low level helper functions and create something more useful for move to lazy seq
Implemted a lazy walk