using generic type id