more adequate generics