abstract the type id