adding generics