remove use of mirrors to construct tranSubtypes

registerTranSubtype now takes an addition parameter which is a function
that has no arguments which returns a new instance of the tran subtype
being registered