Tighten generics requirements