Rewrote almost everyting.
Gradle
Add jacoco report plugin