refactor,re-spec,more benchmarks and cleanup