Use Java 8, removed Scala dependencies
Naming pattern of Java 8 functional interfaces
Refactored
Refactored