I am trying to setup a component and registration system using generics but I am finding generics very confusing to setup, i don\'t understand how to structure the generics setu