refactor: improved type parameterization