fixed compatibility with Java 1.6 and below