public static function applicablePropertyModelId($class, $forceRefresh = false)
    {
        //ability to store properties of all model heirs in the one set of tables
        if (true === method_exists($class, 'getApplicableClass')) {
            $modelClass = call_user_func([$class, 'getApplicableClass']);
        } else {
            $modelClass = is_string($class) ? $class : get_class($class);
        }
        self::retrieveApplicablePropertyModels($forceRefresh);

        if (isset(self::$applicablePropertyModels[$modelClass])) {
            return self::$applicablePropertyModels[$modelClass];
        } else {
            throw new Exception('Property group model record not found for class: ' . $modelClass);
        }
    }