Java 1.6 compatible (hopefully)