fixed up generics to remove warnings