made generics *optional* (i.e., no error thrown)