rebuilt for Java 7