added tpc inheritance