Pure java implementation
Coverage data
Add useful names to parameterized tests