updated items type to generics