diff --git a/composer.json b/composer.json
index 5f24e38..7c62d7b 100644
--- a/composer.json
+++ b/composer.json
@@ -1,6 +1,6 @@
 {
     "name": "phauthentic/problem-details-symfony-bundle",
-    "type": "library",
+    "type": "symfony-bundle",
     "description": "Symfony bundle for the Problem Details for HTTP APIs RFC",
     "require": {
         "php": "^8.2",
diff --git a/config/services.yaml b/config/services.yaml
index 0ea1eba..54240d3 100644
--- a/config/services.yaml
+++ b/config/services.yaml
@@ -12,16 +12,21 @@ services:
     arguments:
       $validationErrorsBuilder: '@Phauthentic\Symfony\ProblemDetails\Validation\ValidationErrorsBuilder'
       $problemDetailsResponseFactory: '@Phauthentic\Symfony\ProblemDetails\FromExceptionEventFactoryInterface'
+    tags:
+      - { name: 'exception.converter' }
 
   Phauthentic\Symfony\ProblemDetails\ExceptionConversion\HttpExceptionConverter:
     arguments:
       $problemDetailsFactory: '@Phauthentic\Symfony\ProblemDetails\ProblemDetailsFactoryInterface'
+    tags:
+      - { name: 'exception.converter' }
+
+  Phauthentic\Symfony\ProblemDetails\ExceptionConversion\GenericExceptionConverter:
+    tags:
+      - { name: 'exception.converter' }
 
-  Phauthentic\Symfony\ProblemDetails\ExceptionConversion\ThrowableToProblemDetailsKernelListener:
+  Phauthentic\Symfony\ProblemDetails\ThrowableToProblemDetailsKernelListener:
     arguments:
-      $exceptionConverters:
-        - '@Phauthentic\Symfony\ProblemDetails\ExceptionConversion\ValidationFailedExceptionConverter'
-        - '@Phauthentic\Symfony\ProblemDetails\ExceptionConversion\HttpExceptionConverter'
-        - '@Phauthentic\Symfony\ProblemDetails\ExceptionConversion\ThrowableToProblemDetailsKernelListener'
+      $exceptionConverters: !tagged_iterator exception.converter
     tags:
-      - { name: 'kernel.event_listener', event: 'kernel.exception', priority: 0 }
+      - { name: 'kernel.event_listener', event: 'kernel.exception', priority: 0 }
\ No newline at end of file
diff --git a/src/ExceptionConversion/GenericThrowableConverter.php b/src/ExceptionConversion/GenericExceptionConverter.php
similarity index 96%
rename from src/ExceptionConversion/GenericThrowableConverter.php
rename to src/ExceptionConversion/GenericExceptionConverter.php
index 4a4952e..6c4bb8d 100644
--- a/src/ExceptionConversion/GenericThrowableConverter.php
+++ b/src/ExceptionConversion/GenericExceptionConverter.php
@@ -24,7 +24,7 @@
  *
  * @link https://www.rfc-editor.org/rfc/rfc9457.html
  */
-class GenericThrowableConverter implements ExceptionConverterInterface
+class GenericExceptionConverter implements ExceptionConverterInterface
 {
     /**
      * @param ProblemDetailsFactoryInterface $problemDetailsFactory
diff --git a/src/ThrowableToProblemDetailsKernelListener.php b/src/ThrowableToProblemDetailsKernelListener.php
index 64b8bb9..278a9ae 100644
--- a/src/ThrowableToProblemDetailsKernelListener.php
+++ b/src/ThrowableToProblemDetailsKernelListener.php
@@ -29,7 +29,7 @@ class ThrowableToProblemDetailsKernelListener
      * @param array<ExceptionConverterInterface> $exceptionConverters
      */
     public function __construct(
-        protected array $exceptionConverters = []
+        protected iterable $exceptionConverters = []
     ) {
         if (empty($this->exceptionConverters)) {
             throw new InvalidArgumentException('At least one converter must be provided');
diff --git a/tests/Unit/ExceptionConversion/GenericThrowableConverterTest.php b/tests/Unit/ExceptionConversion/GenericThrowableConverterTest.php
index 8234c6e..ea19946 100644
--- a/tests/Unit/ExceptionConversion/GenericThrowableConverterTest.php
+++ b/tests/Unit/ExceptionConversion/GenericThrowableConverterTest.php
@@ -5,7 +5,7 @@
 namespace Phauthentic\Symfony\ProblemDetails\Tests\Unit\ExceptionConversion;
 
 use Exception;
-use Phauthentic\Symfony\ProblemDetails\ExceptionConversion\GenericThrowableConverter;
+use Phauthentic\Symfony\ProblemDetails\ExceptionConversion\GenericExceptionConverter;
 use Phauthentic\Symfony\ProblemDetails\ExceptionConversion\HttpExceptionConverter;
 use Phauthentic\Symfony\ProblemDetails\ProblemDetailsFactory;
 use Phauthentic\Symfony\ProblemDetails\ProblemDetailsResponse;
@@ -24,7 +24,7 @@ public function setUp(): void
     {
         parent::setUp();
 
-        $this->converter = new GenericThrowableConverter(
+        $this->converter = new GenericExceptionConverter(
             problemDetailsFactory: new ProblemDetailsFactory()
         );
     }
diff --git a/tests/Unit/ThrowableToProblemDetailsKernelListenerTest.php b/tests/Unit/ThrowableToProblemDetailsKernelListenerTest.php
index 2b978c0..8794361 100644
--- a/tests/Unit/ThrowableToProblemDetailsKernelListenerTest.php
+++ b/tests/Unit/ThrowableToProblemDetailsKernelListenerTest.php
@@ -6,7 +6,7 @@
 
 use Exception;
 use InvalidArgumentException;
-use Phauthentic\Symfony\ProblemDetails\ExceptionConversion\GenericThrowableConverter;
+use Phauthentic\Symfony\ProblemDetails\ExceptionConversion\GenericExceptionConverter;
 use Phauthentic\Symfony\ProblemDetails\ProblemDetailsFactory;
 use PHPUnit\Framework\Attributes\DataProvider;
 use PHPUnit\Framework\Attributes\Test;
@@ -45,7 +45,7 @@ public function testOnKernelException(string $environment, bool $shouldHaveTrace
 
         $listener = new ThrowableToProblemDetailsKernelListener(
             [
-                new GenericThrowableConverter(new ProblemDetailsFactory(), $environment),
+                new GenericExceptionConverter(new ProblemDetailsFactory(), $environment),
             ]
         );