method generics was useless
T is not such a good name