Add generics to structs