Upgraded for Java 8