Assume JDK8, remove JDK7 specific. Remove redundant code, general tidy up. Add map/reduce comparison version.