public function getName()
    {
        static $names = [];
        $me = get_class($this);
        if (empty($names[$me])) {
            $names[$me] = $this->getReflector()->getShortName();
            $suffix = defined('static::PACK_SUFFIX') ? static::PACK_SUFFIX : 'Pack';
            if (strrpos($names[$me], $suffix) == (strlen($names[$me]) - strlen($suffix))) {
                $names[$me] = substr($names[$me], 0, strlen($names[$me]) - strlen($suffix));
            }
        }
        return $names[$me];
    }