renamed to ngTraverse