Updated to clarify the parameter `T`