extracted traverser from another project