take advantage of JDK 1.7 Generics type inference