doesn't generics more or less duplicate the class every time you use it with different type, and if so would this not cause alot of bloating ?