generics 2B skeleton