adding generics to the daos