- rewrote for java 8
- parallel execution