private function registerDetectors()
    {
        $this->singleton(Contracts\Detectors\CrawlerDetector::class, function (AppContract $app) {
            /** @var  \Illuminate\Http\Request  $request */
            $request = $app['request'];

            return new Detectors\CrawlerDetector(
                new \Jaybizzle\CrawlerDetect\CrawlerDetect(
                    $request->headers->all(),
                    $request->server('HTTP_USER_AGENT')
                )
            );
        });

        $this->singleton(Contracts\Detectors\DeviceDetector::class,   Detectors\DeviceDetector::class);
        $this->singleton(Contracts\Detectors\GeoIpDetector::class,    Detectors\GeoIpDetector::class);
        $this->singleton(Contracts\Detectors\LanguageDetector::class, Detectors\LanguageDetector::class);
    }