add tests and benchmarks, work on overlap