use new principal subclass model for app