Parameterized generic types

Change-Id: I2bbc37af6e0f0c04a3d9f3e8a0adaaf66461b8d1