add test coverage report, add some tests, cleanup some methods and names, better stream comparison.