create garbage collected templated super class