Code cleanup, edited tests, and updated benchmarks

isn't this a circular ref ? (infinite loop)