Functional programming AND Java 8
Common descendants