Part 3: Use parameterized types when possible