diff --git a/composer.json b/composer.json
index 543649c..141ee5a 100644
--- a/composer.json
+++ b/composer.json
@@ -20,7 +20,7 @@
         "arcanedev/geo-ip":         "~2.0",
         "arcanedev/support":        "~3.20",
         "jaybizzle/crawler-detect": "~1.0",
-        "jenssegers/agent":         "~2.0",
+        "arcanedev/agent":          "~1.0",
         "ramsey/uuid":              "~3.0",
         "snowplow/referer-parser":  "~0.2",
         "ua-parser/uap-php" :       "~3.0"
diff --git a/src/Detectors/DeviceDetector.php b/src/Detectors/DeviceDetector.php
index 4ba975e..bfaca3d 100644
--- a/src/Detectors/DeviceDetector.php
+++ b/src/Detectors/DeviceDetector.php
@@ -1,5 +1,6 @@
 <?php namespace Arcanedev\LaravelTracker\Detectors;
 
+use Arcanedev\Agent\Contracts\Agent;
 use Arcanedev\LaravelTracker\Contracts\Detectors\DeviceDetector as DeviceDetectorContract;
 use Arcanedev\LaravelTracker\Models\Device;
 
@@ -15,7 +16,7 @@ class DeviceDetector implements DeviceDetectorContract
      |  Properties
      | ------------------------------------------------------------------------------------------------
      */
-    /** @var \Jenssegers\Agent\Agent */
+    /** @var \Arcanedev\Agent\Contracts\Agent */
     protected $agent;
 
     /* ------------------------------------------------------------------------------------------------
@@ -25,9 +26,9 @@ class DeviceDetector implements DeviceDetectorContract
     /**
      * DeviceDetector constructor.
      *
-     * @param  \Jenssegers\Agent\Agent  $agent
+     * @param  \Arcanedev\Agent\Contracts\Agent  $agent
      */
-    public function __construct($agent)
+    public function __construct(Agent $agent)
     {
         $this->agent = $agent;
     }
diff --git a/src/Detectors/GeoIpDetector.php b/src/Detectors/GeoIpDetector.php
index e026479..e68ecdf 100644
--- a/src/Detectors/GeoIpDetector.php
+++ b/src/Detectors/GeoIpDetector.php
@@ -24,6 +24,11 @@ class GeoIpDetector implements GeoIpDetectorContract
      |  Constructor
      | ------------------------------------------------------------------------------------------------
      */
+    /**
+     * GeoIpDetector constructor.
+     *
+     * @param  \Arcanedev\GeoIP\Contracts\GeoIP  $geoip
+     */
     public function __construct(GeoIP $geoip)
     {
         $this->geoip = $geoip;
diff --git a/src/Detectors/LanguageDetector.php b/src/Detectors/LanguageDetector.php
index 97493c7..3c2713e 100644
--- a/src/Detectors/LanguageDetector.php
+++ b/src/Detectors/LanguageDetector.php
@@ -1,5 +1,6 @@
 <?php namespace Arcanedev\LaravelTracker\Detectors;
 
+use Arcanedev\Agent\Contracts\Agent;
 use Arcanedev\LaravelTracker\Contracts\Detectors\LanguageDetector as LanguageDetectorContract;
 
 /**
@@ -14,7 +15,7 @@ class LanguageDetector implements LanguageDetectorContract
      |  Properties
      | ------------------------------------------------------------------------------------------------
      */
-    /** @var \Jenssegers\Agent\Agent */
+    /** @var \Arcanedev\Agent\Contracts\Agent */
     protected $agent;
 
     /* ------------------------------------------------------------------------------------------------
@@ -24,9 +25,9 @@ class LanguageDetector implements LanguageDetectorContract
     /**
      * LanguageDetector constructor.
      *
-     * @param  \Jenssegers\Agent\Agent  $agent
+     * @param  \Arcanedev\Agent\Contracts\Agent  $agent
      */
-    public function __construct($agent)
+    public function __construct(Agent $agent)
     {
         $this->agent = $agent;
     }
diff --git a/src/LaravelTrackerServiceProvider.php b/src/LaravelTrackerServiceProvider.php
index f18b63d..2224485 100644
--- a/src/LaravelTrackerServiceProvider.php
+++ b/src/LaravelTrackerServiceProvider.php
@@ -115,15 +115,9 @@ private function registerDetectors()
             return new Detectors\CrawlerDetector($crawler);
         });
 
-        $this->singleton(Contracts\Detectors\DeviceDetector::class, function (AppContract $app) {
-            return new Detectors\DeviceDetector($app['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, function (AppContract $app) {
-            return new Detectors\LanguageDetector($app['agent']);
-        });
+        $this->singleton(Contracts\Detectors\LanguageDetector::class, Detectors\LanguageDetector::class);
     }
 
     /**
diff --git a/src/Providers/PackagesServiceProvider.php b/src/Providers/PackagesServiceProvider.php
index e4e9e31..c6d3d91 100644
--- a/src/Providers/PackagesServiceProvider.php
+++ b/src/Providers/PackagesServiceProvider.php
@@ -21,7 +21,7 @@ public function register()
     {
         $this->registerProviders([
             \Arcanedev\GeoIP\GeoIPServiceProvider::class,
-            \Jenssegers\Agent\AgentServiceProvider::class,
+            \Arcanedev\Agent\AgentServiceProvider::class,
         ]);
     }
 }