using java version 1.5 (to enable generics)