added list traversal