requires java 8 now, some refactorings

more use of immutable collections for easier reading
Version 1.5 (because of change to Java 1.8)