working on parametrized types