diff --git a/src/MetricsController.php b/src/MetricsController.php
index a481479..fafae37 100644
--- a/src/MetricsController.php
+++ b/src/MetricsController.php
@@ -2,63 +2,28 @@
 
 namespace Superbalist\LaravelPrometheusExporter;
 
-use Illuminate\Contracts\Routing\ResponseFactory;
 use Illuminate\Routing\Controller;
 use Prometheus\RenderTextFormat;
 
 class MetricsController extends Controller
 {
-    /**
-     * @var ResponseFactory
-     */
-    protected $responseFactory;
-
-    /**
-     * @var PrometheusExporter
-     */
-    protected $prometheusExporter;
-
-    /**
-     * @param ResponseFactory $responseFactory
-     * @param PrometheusExporter $prometheusExporter
-     */
-    public function __construct(ResponseFactory $responseFactory, PrometheusExporter $prometheusExporter)
-    {
-        $this->responseFactory = $responseFactory;
-        $this->prometheusExporter = $prometheusExporter;
-    }
-
-    /**
-     * @return ResponseFactory
-     */
-    public function getResponseFactory()
-    {
-        return $this->responseFactory;
-    }
-
-    /**
-     * @return PrometheusExporter
-     */
-    public function getPrometheusExporter()
-    {
-        return $this->prometheusExporter;
-    }
-
     /**
      * GET /metrics
      *
      * The route path is configurable in the prometheus.metrics_route_path config var, or the
      * PROMETHEUS_METRICS_ROUTE_PATH env var.
      *
+     * @param PrometheusExporter $prometheusExporter
      * @return \Symfony\Component\HttpFoundation\Response
      */
-    public function getMetrics()
+    public function getMetrics(PrometheusExporter $prometheusExporter)
     {
-        $metrics = $this->prometheusExporter->export();
-
-        $renderer = new RenderTextFormat();
-        $result = $renderer->render($metrics);
-
-        return $this->responseFactory->make($result, 200, ['Content-Type' => RenderTextFormat::MIME_TYPE]);
+        return response()->make(
+            (new RenderTextFormat)->render(
+                $prometheusExporter->export()
+            ),
+            200,
+            ['Content-Type' => RenderTextFormat::MIME_TYPE]
+        );
     }
 }
diff --git a/src/PrometheusServiceProvider.php b/src/PrometheusServiceProvider.php
index 4b189f5..a1760e3 100644
--- a/src/PrometheusServiceProvider.php
+++ b/src/PrometheusServiceProvider.php
@@ -14,18 +14,23 @@ class PrometheusServiceProvider extends ServiceProvider
      */
     public function boot()
     {
-        $this->publishes([
-            __DIR__ . '/../config/prometheus.php' => config_path('prometheus.php'),
-        ]);
+        if (function_exists('config_path')) {
+            $this->publishes([
+                __DIR__ . '/../config/prometheus.php' => config_path('prometheus.php'),
+            ]);
+        }
 
         if (config('prometheus.metrics_route_enabled')) {
             $this->loadRoutesFrom(__DIR__ . '/routes.php');
         }
 
-        $exporter = $this->app->make(PrometheusExporter::class); /* @var PrometheusExporter $exporter */
+        /* @var PrometheusExporter $exporter */
+        $exporter = $this->app->make(PrometheusExporter::class);
+
         foreach (config('prometheus.collectors') as $class) {
-            $collector = $this->app->make($class);
-            $exporter->registerCollector($collector);
+            $exporter->registerCollector(
+                $this->app->make($class)
+            );
         }
     }
 
@@ -48,7 +53,8 @@ class PrometheusServiceProvider extends ServiceProvider
         });
 
         $this->app->bind(Adapter::class, function ($app) {
-            $factory = $app['prometheus.storage_adapter_factory']; /** @var StorageAdapterFactory $factory */
+            $factory = $app['prometheus.storage_adapter_factory'];
+            /** @var StorageAdapterFactory $factory */
             $driver = config('prometheus.storage_adapter');
             $configs = config('prometheus.storage_adapters');
             $config = Arr::get($configs, $driver, []);
diff --git a/src/routes.php b/src/routes.php
index 58ad631..90f3c29 100644
--- a/src/routes.php
+++ b/src/routes.php
@@ -1,17 +1,12 @@
 <?php
 
-/** @var \Illuminate\Routing\Route $route */
-$route = Route::get(
-    config('prometheus.metrics_route_path'),
-    \Superbalist\LaravelPrometheusExporter\MetricsController::class . '@getMetrics'
-);
+/** @var \Illuminate\Routing\Route|\Laravel\Lumen\Routing\Router $route */
+$route = app('router');
 
-if ($name = config('prometheus.metrics_route_name')) {
-    $route->name($name);
-}
+$params = array_filter([
+    'uses' => \Superbalist\LaravelPrometheusExporter\MetricsController::class . '@getMetrics',
+    'as' =>  config('prometheus.metrics_route_name'),
+    'middleware' =>  config('prometheus.metrics_route_middleware'),
+]);
 
-$middleware = config('prometheus.metrics_route_middleware');
-
-if ($middleware) {
-    $route->middleware($middleware);
-}
+$route->get(config('prometheus.metrics_route_path'), $params);