Uses Java 7