some refactoring

refactored traversel to support different traversers
refactored settings splitting compile setup from new traversal setup