added 3 forms of traversals