Requires Java 8