protected static function engine()
    {
        $engine = '';

        foreach (static::$engines as $name => $function) {
            if ($function === null || function_exists($function)) {
                $engine = $name;
                break;
            }
        }

        return $engine;
    }