Use T as type param