Generics add

I've added the tasks about generic classes and methods but still
refoactoring is needed