public static function doAction($tag, $args = [], $remove = true)
    {
        $that = self::getInstance(self::$id);

        self::$current = $tag;

        $that->actions['count']++;

        if (! array_key_exists($tag, $that->actions)) {
            $that->actions[$tag] = 0;
        }

        $that->actions[$tag]++;
        $actions = $that->getActions($tag, $remove);
        asort($actions);

        foreach ($actions as $priority) {
            foreach ($priority as $action) {
                $action = $that->runAction($action, $args);
            }
        }

        self::$current = false;

        return (isset($action)) ? $action : false;
    }