better type parameter names