fix for javac8 compiler
a functional-interface for foreach
added distinct
made Compare more lambda-compatible
removed some varargs