Upgrade to Java 8, use Optionals