protected function _create($class, $alias, $settings)
    {
        if (is_callable($class)) {
            $class = $class($alias);
        }

        if (is_object($class)) {
            $instance = $class;
        }

        if (!isset($instance)) {
            $key = PHP_SAPI === 'cli' ? 'stdout' : 'default';
            $logger = Hash::get($settings, 'logger', $key);
            if (!($logger instanceof LoggerInterface)) {
                $logger = Log::engine($logger);
            }
            if (!($logger instanceof LoggerInterface)) {
                $logger = Log::engine('debug');
            }

            if ($logger === false) {
                $logger = null;
            }

            $instance = new $class($logger, $settings);
        }

        if ($instance instanceof EngineInterface) {
            return $instance;
        }

        throw new RuntimeException(
            'Queue Engines must implement josegonzalez\Queuesadilla\Engine\EngineInterface.'
        );
    }