Added the ability to track traversal state with object and perform diff traversals. Updated tests