 src/Context/CurrentContext.php                     | 35 ++++++++++--
 src/Context/CurrentContextInterface.php            | 64 ----------------------
 src/Context/FieldResolver.php                      | 30 ++++++++--
 src/Context/FieldResolverInterface.php             | 42 --------------
 src/Controller/EntityResource.php                  | 19 +++----
 src/Controller/RequestHandler.php                  | 22 ++++----
 src/Error/ErrorHandler.php                         | 30 +++++++++-
 src/Error/ErrorHandlerBase.php                     | 21 -------
 src/Error/ErrorHandlerInterface.php                | 34 ------------
 src/LinkManager/LinkManager.php                    | 41 ++++++++++++--
 src/LinkManager/LinkManagerInterface.php           | 63 ---------------------
 src/Normalizer/EntityNormalizer.php                |  8 +--
 src/Normalizer/EntityReferenceFieldNormalizer.php  | 10 ++--
 .../JsonApiDocumentTopLevelNormalizer.php          | 20 +++----
 src/Normalizer/Relationship.php                    |  6 +-
 src/Normalizer/RelationshipNormalizer.php          |  8 +--
 .../Value/DocumentRootNormalizerValue.php          |  7 ++-
 .../Value/DocumentRootNormalizerValueInterface.php | 22 --------
 src/Normalizer/Value/EntityNormalizerValue.php     | 12 ++--
 .../Value/EntityNormalizerValueInterface.php       | 22 --------
 src/Normalizer/Value/FieldItemNormalizerValue.php  |  2 +-
 .../Value/FieldItemNormalizerValueInterface.php    |  2 +-
 .../Value/RelationshipItemNormalizerValue.php      |  9 ++-
 .../RelationshipItemNormalizerValueInterface.php   | 22 --------
 .../Value/RelationshipNormalizerValue.php          |  4 +-
 src/Query/QueryBuilder.php                         | 26 ++++++---
 src/Query/QueryBuilderInterface.php                | 29 ----------
 src/Resource/EntityCollection.php                  | 20 +++++--
 src/Resource/EntityCollectionInterface.php         | 39 -------------
 src/Resource/JsonApiDocumentTopLevel.php           |  6 +-
 tests/src/Kernel/Controller/EntityResourceTest.php | 14 ++---
 .../JsonApiDocumentTopLevelNormalizerTest.php      |  4 +-
 tests/src/Unit/Context/FieldResolverTest.php       |  6 +-
 tests/src/Unit/Controller/RequestHandlerTest.php   |  4 +-
 .../Unit/Normalizer/ConfigEntityNormalizerTest.php |  4 +-
 .../EntityReferenceFieldNormalizerTest.php         |  4 +-
 .../JsonApiDocumentTopLevelNormalizerTest.php      |  8 +--
 .../Value/DocumentRootNormalizerValueTest.php      | 10 ++--
 .../Normalizer/Value/EntityNormalizerValueTest.php | 16 +++---
 .../Normalizer/Value/FieldNormalizerValueTest.php  |  2 +-
 .../Value/RelationshipNormalizerValueTest.php      |  6 +-
 41 files changed, 262 insertions(+), 491 deletions(-)

diff --git a/src/Context/CurrentContext.php b/src/Context/CurrentContext.php
index 19331d1..042dcec 100644
--- a/src/Context/CurrentContext.php
+++ b/src/Context/CurrentContext.php
@@ -15,7 +15,7 @@ use Symfony\Component\HttpFoundation\RequestStack;
  *
  * @internal
  */
-class CurrentContext implements CurrentContextInterface {
+class CurrentContext {
 
   /**
    * The JSON API resource type repository.
@@ -62,7 +62,10 @@ class CurrentContext implements CurrentContextInterface {
   }
 
   /**
-   * {@inheritdoc}
+   * Gets the JSON API resource type for the current request.
+   *
+   * @return \Drupal\jsonapi\ResourceType\ResourceType
+   *   The JSON API resource type for the current request.
    */
   public function getResourceType() {
     if (!isset($this->resourceType)) {
@@ -77,7 +80,10 @@ class CurrentContext implements CurrentContextInterface {
   }
 
   /**
-   * {@inheritdoc}
+   * Checks if the request is on a relationship.
+   *
+   * @return bool
+   *   TRUE if the request is on a relationship. FALSE otherwise.
    */
   public function isOnRelationship() {
     return (bool) $this->routeMatch
@@ -86,7 +92,13 @@ class CurrentContext implements CurrentContextInterface {
   }
 
   /**
-   * {@inheritdoc}
+   * Get a value by key from the _json_api_params route parameter.
+   *
+   * @param string $parameter_key
+   *   The key by which to retrieve a route parameter.
+   *
+   * @return mixed
+   *   The JSON API provided parameter.
    */
   public function getJsonApiParameter($parameter_key) {
     $params = $this
@@ -98,14 +110,25 @@ class CurrentContext implements CurrentContextInterface {
   }
 
   /**
-   * {@inheritdoc}
+   * Determines, whether the JSONAPI extension was requested.
+   *
+   * @todo Find a better place for such a JSONAPI derived information.
+   *
+   * @param string $extension_name
+   *   The extension name.
+   *
+   * @return bool
+   *   Returns TRUE, if the extension has been found.
    */
   public function hasExtension($extension_name) {
     return in_array($extension_name, $this->getExtensions());
   }
 
   /**
-   * {@inheritdoc}
+   * Returns a list of requested extensions.
+   *
+   * @return string[]
+   *   The extension names.
    */
   public function getExtensions() {
     $content_type_header = $this
diff --git a/src/Context/CurrentContextInterface.php b/src/Context/CurrentContextInterface.php
deleted file mode 100644
index 25ae56e..0000000
--- a/src/Context/CurrentContextInterface.php
+++ /dev/null
@@ -1,64 +0,0 @@
-<?php
-
-namespace Drupal\jsonapi\Context;
-
-/**
- * Interface CurrentContextInterface.
- *
- * An interface for accessing contextual information for the current request.
- *
- * @package \Drupal\jsonapi\Context
- *
- * @internal
- */
-interface CurrentContextInterface {
-
-  /**
-   * Gets the JSON API resource type for the current request.
-   *
-   * @return \Drupal\jsonapi\ResourceType\ResourceType
-   *   The JSON API resource type for the current request.
-   */
-  public function getResourceType();
-
-  /**
-   * Checks if the request is on a relationship.
-   *
-   * @return bool
-   *   TRUE if the request is on a relationship. FALSE otherwise.
-   */
-  public function isOnRelationship();
-
-  /**
-   * Get a value by key from the _json_api_params route parameter.
-   *
-   * @param string $parameter_key
-   *   The key by which to retrieve a route parameter.
-   *
-   * @return mixed
-   *   The JSON API provided parameter.
-   */
-  public function getJsonApiParameter($parameter_key);
-
-  /**
-   * Determines, whether the JSONAPI extension was requested.
-   *
-   * @todo Find a better place for such a JSONAPI derived information.
-   *
-   * @param string $extension_name
-   *   The extension name.
-   *
-   * @return bool
-   *   Returns TRUE, if the extension has been found.
-   */
-  public function hasExtension($extension_name);
-
-  /**
-   * Returns a list of requested extensions.
-   *
-   * @return string[]
-   *   The extension names.
-   */
-  public function getExtensions();
-
-}
diff --git a/src/Context/FieldResolver.php b/src/Context/FieldResolver.php
index 2a4f654..40330d8 100644
--- a/src/Context/FieldResolver.php
+++ b/src/Context/FieldResolver.php
@@ -12,12 +12,12 @@ use Drupal\jsonapi\Error\SerializableHttpException;
  *
  * @internal
  */
-class FieldResolver implements FieldResolverInterface {
+class FieldResolver {
 
   /**
    * The entity type id.
    *
-   * @var \Drupal\jsonapi\Context\CurrentContextInterface
+   * @var \Drupal\jsonapi\Context\CurrentContext
    */
   protected $currentContext;
 
@@ -31,18 +31,27 @@ class FieldResolver implements FieldResolverInterface {
   /**
    * Creates a FieldResolver instance.
    *
-   * @param \Drupal\jsonapi\Context\CurrentContextInterface $current_context
+   * @param \Drupal\jsonapi\Context\CurrentContext $current_context
    *   The JSON API CurrentContext service.
    * @param \Drupal\Core\Entity\EntityFieldManagerInterface $field_manager
    *   The field manager.
    */
-  public function __construct(CurrentContextInterface $current_context, EntityFieldManagerInterface $field_manager) {
+  public function __construct(CurrentContext $current_context, EntityFieldManagerInterface $field_manager) {
     $this->currentContext = $current_context;
     $this->fieldManager = $field_manager;
   }
 
   /**
-   * {@inheritdoc}
+   * Maps a Drupal field name to a public field name.
+   *
+   * Example:
+   *   'field_author.entity.field_first_name' -> 'author.firstName'.
+   *
+   * @param string $field_name
+   *   The Drupal field name to map to a public field name.
+   *
+   * @return string
+   *   The mapped field name.
    */
   public function resolveExternal($internal_field_name) {
     // Yet to be implemented.
@@ -50,7 +59,16 @@ class FieldResolver implements FieldResolverInterface {
   }
 
   /**
-   * {@inheritdoc}
+   * Maps a public field name to a Drupal field name.
+   *
+   * Example:
+   *   'author.firstName' -> 'field_author.entity.field_first_name'.
+   *
+   * @param string $field_name
+   *   The publicI field name to map to a Drupal field name.
+   *
+   * @return string
+   *   The mapped field name.
    */
   public function resolveInternal($external_field_name) {
     if (empty($external_field_name)) {
diff --git a/src/Context/FieldResolverInterface.php b/src/Context/FieldResolverInterface.php
deleted file mode 100644
index 4d3622b..0000000
--- a/src/Context/FieldResolverInterface.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-
-namespace Drupal\jsonapi\Context;
-
-/**
- * Contains FieldResolverInterface.
- *
- * Interface for mapping public field names to Drupal field names.
- *
- * @internal
- */
-interface FieldResolverInterface {
-
-  /**
-   * Maps a Drupal field name to a public field name.
-   *
-   * Example:
-   *   'field_author.entity.field_first_name' -> 'author.firstName'.
-   *
-   * @param string $field_name
-   *   The Drupal field name to map to a public field name.
-   *
-   * @return string
-   *   The mapped field name.
-   */
-  public function resolveExternal($field_name);
-
-  /**
-   * Maps a public field name to a Drupal field name.
-   *
-   * Example:
-   *   'author.firstName' -> 'field_author.entity.field_first_name'.
-   *
-   * @param string $field_name
-   *   The publicI field name to map to a Drupal field name.
-   *
-   * @return string
-   *   The mapped field name.
-   */
-  public function resolveInternal($field_name);
-
-}
diff --git a/src/Controller/EntityResource.php b/src/Controller/EntityResource.php
index 4b016fb..3488bea 100644
--- a/src/Controller/EntityResource.php
+++ b/src/Controller/EntityResource.php
@@ -15,13 +15,12 @@ use Drupal\Core\Field\EntityReferenceFieldItemListInterface;
 use Drupal\Core\Field\FieldTypePluginManagerInterface;
 use Drupal\Core\Field\Plugin\Field\FieldType\EntityReferenceItem;
 use Drupal\jsonapi\Resource\EntityCollection;
-use Drupal\jsonapi\Resource\EntityCollectionInterface;
 use Drupal\jsonapi\Resource\JsonApiDocumentTopLevel;
 use Drupal\jsonapi\ResourceType\ResourceType;
 use Drupal\jsonapi\Error\SerializableHttpException;
 use Drupal\jsonapi\Error\UnprocessableHttpEntityException;
-use Drupal\jsonapi\Query\QueryBuilderInterface;
-use Drupal\jsonapi\Context\CurrentContextInterface;
+use Drupal\jsonapi\Query\QueryBuilder;
+use Drupal\jsonapi\Context\CurrentContext;
 use Drupal\jsonapi\ResourceResponse;
 use Drupal\jsonapi\Routing\Param\JsonApiParamBase;
 use Drupal\jsonapi\Routing\Param\OffsetPage;
@@ -59,14 +58,14 @@ class EntityResource {
   /**
    * The query builder service.
    *
-   * @var \Drupal\jsonapi\Query\QueryBuilderInterface
+   * @var \Drupal\jsonapi\Query\QueryBuilder
    */
   protected $queryBuilder;
 
   /**
    * The current context service.
    *
-   * @var \Drupal\jsonapi\Context\CurrentContextInterface
+   * @var \Drupal\jsonapi\Context\CurrentContext
    */
   protected $currentContext;
 
@@ -84,16 +83,16 @@ class EntityResource {
    *   The JSON API resource type.
    * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager
    *   The entity type manager.
-   * @param \Drupal\jsonapi\Query\QueryBuilderInterface $query_builder
+   * @param \Drupal\jsonapi\Query\QueryBuilder $query_builder
    *   The query builder.
    * @param \Drupal\Core\Entity\EntityFieldManagerInterface $field_manager
    *   The entity type field manager.
-   * @param \Drupal\jsonapi\Context\CurrentContextInterface $current_context
+   * @param \Drupal\jsonapi\Context\CurrentContext $current_context
    *   The current context.
    * @param \Drupal\Core\Field\FieldTypePluginManagerInterface $plugin_manager
    *   The plugin manager for fields.
    */
-  public function __construct(ResourceType $resource_type, EntityTypeManagerInterface $entity_type_manager, QueryBuilderInterface $query_builder, EntityFieldManagerInterface $field_manager, CurrentContextInterface $current_context, FieldTypePluginManagerInterface $plugin_manager) {
+  public function __construct(ResourceType $resource_type, EntityTypeManagerInterface $entity_type_manager, QueryBuilder $query_builder, EntityFieldManagerInterface $field_manager, CurrentContext $current_context, FieldTypePluginManagerInterface $plugin_manager) {
     $this->resourceType = $resource_type;
     $this->entityTypeManager = $entity_type_manager;
     $this->queryBuilder = $query_builder;
@@ -590,7 +589,7 @@ class EntityResource {
   /**
    * Respond with an entity collection.
    *
-   * @param \Drupal\jsonapi\EntityCollectionInterface $entity_collection
+   * @param \Drupal\jsonapi\EntityCollection $entity_collection
    *   The collection of entites.
    * @param string $entity_type_id
    *   The entity type.
@@ -598,7 +597,7 @@ class EntityResource {
    * @return \Drupal\jsonapi\ResourceResponse
    *   The response.
    */
-  protected function respondWithCollection(EntityCollectionInterface $entity_collection, $entity_type_id) {
+  protected function respondWithCollection(EntityCollection $entity_collection, $entity_type_id) {
     $response = $this->buildWrappedResponse($entity_collection);
 
     // When a new change to any entity in the resource happens, we cannot ensure
diff --git a/src/Controller/RequestHandler.php b/src/Controller/RequestHandler.php
index ddabb93..7ba89dc 100644
--- a/src/Controller/RequestHandler.php
+++ b/src/Controller/RequestHandler.php
@@ -5,8 +5,8 @@ namespace Drupal\jsonapi\Controller;
 use Drupal\Core\DependencyInjection\ContainerInjectionInterface;
 use Drupal\Core\Render\RenderContext;
 use Drupal\Core\Routing\RouteMatchInterface;
-use Drupal\jsonapi\Context\CurrentContextInterface;
-use Drupal\jsonapi\Error\ErrorHandlerInterface;
+use Drupal\jsonapi\Context\CurrentContext;
+use Drupal\jsonapi\Error\ErrorHandler;
 use Drupal\jsonapi\Error\SerializableHttpException;
 use Drupal\jsonapi\ResourceResponse;
 use Symfony\Component\DependencyInjection\ContainerAwareInterface;
@@ -52,7 +52,7 @@ class RequestHandler implements ContainerAwareInterface, ContainerInjectionInter
     // Deserialize incoming data if available.
     /* @var \Symfony\Component\Serializer\SerializerInterface $serializer */
     $serializer = $this->container->get('serializer');
-    /* @var \Drupal\jsonapi\Context\CurrentContextInterface $current_context */
+    /* @var \Drupal\jsonapi\Context\CurrentContext $current_context */
     $current_context = $this->container->get('jsonapi.current_context');
     $unserialized = $this->deserializeBody($request, $serializer, $route->getOption('serialization_class'), $current_context);
     $format = $request->getRequestFormat();
@@ -82,7 +82,7 @@ class RequestHandler implements ContainerAwareInterface, ContainerInjectionInter
     // Only add the unserialized data if there is something there.
     $extra_parameters = $unserialized ? [$unserialized, $request] : [$request];
 
-    /** @var \Drupal\jsonapi\Error\ErrorHandlerInterface $error_handler */
+    /** @var \Drupal\jsonapi\Error\ErrorHandler $error_handler */
     $error_handler = $this->container->get('jsonapi.error_handler');
     $error_handler->register();
     // Execute the request in context so the cacheable metadata from the entity
@@ -118,13 +118,13 @@ class RequestHandler implements ContainerAwareInterface, ContainerInjectionInter
    *   The serializer to use.
    * @param string $format
    *   The response format.
-   * @param \Drupal\jsonapi\Error\ErrorHandlerInterface $error_handler
+   * @param \Drupal\jsonapi\Error\ErrorHandler $error_handler
    *   The error handler service.
    *
    * @return \Drupal\Core\Cache\CacheableResponse
    *   The altered response.
    */
-  protected function renderJsonApiResponse(Request $request, ResourceResponse $response, SerializerInterface $serializer, $format, ErrorHandlerInterface $error_handler) {
+  protected function renderJsonApiResponse(Request $request, ResourceResponse $response, SerializerInterface $serializer, $format, ErrorHandler $error_handler) {
     $data = $response->getResponseData();
     $context = new RenderContext();
 
@@ -170,13 +170,13 @@ class RequestHandler implements ContainerAwareInterface, ContainerInjectionInter
    *   The serializer for the deserialization of the input data.
    * @param string $serialization_class
    *   The class the input data needs to deserialize into.
-   * @param \Drupal\jsonapi\Context\CurrentContextInterface $current_context
+   * @param \Drupal\jsonapi\Context\CurrentContext $current_context
    *   The current context
    *
    * @return mixed
    *   The deserialized data or a Response object in case of error.
    */
-  public function deserializeBody(Request $request, SerializerInterface $serializer, $serialization_class, CurrentContextInterface $current_context) {
+  public function deserializeBody(Request $request, SerializerInterface $serializer, $serialization_class, CurrentContext $current_context) {
     $received = $request->getContent();
     $method = strtolower($request->getMethod());
     if (empty($received)) {
@@ -252,18 +252,18 @@ class RequestHandler implements ContainerAwareInterface, ContainerInjectionInter
    *
    * @param \Symfony\Component\Routing\Route $route
    *   The matched route.
-   * @param \Drupal\jsonapi\Context\CurrentContextInterface $current_context
+   * @param \Drupal\jsonapi\Context\CurrentContext $current_context
    *   The current context.
    *
    * @return \Drupal\jsonapi\Controller\EntityResource
    *   The instantiated resource.
    */
-  protected function resourceFactory(Route $route, CurrentContextInterface $current_context) {
+  protected function resourceFactory(Route $route, CurrentContext $current_context) {
     /** @var \Drupal\jsonapi\ResourceType\ResourceTypeRepository $resource_type_repository */
     $resource_type_repository = $this->container->get('jsonapi.resource_type.repository');
     /* @var \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager */
     $entity_type_manager = $this->container->get('entity_type.manager');
-    /* @var \Drupal\jsonapi\Query\QueryBuilderInterface $query_builder */
+    /* @var \Drupal\jsonapi\Query\QueryBuilder $query_builder */
     $query_builder = $this->container->get('jsonapi.query_builder');
     /* @var \Drupal\Core\Entity\EntityFieldManagerInterface $field_manager */
     $field_manager = $this->container->get('entity_field.manager');
diff --git a/src/Error/ErrorHandler.php b/src/Error/ErrorHandler.php
index 9e13560..659691d 100644
--- a/src/Error/ErrorHandler.php
+++ b/src/Error/ErrorHandler.php
@@ -2,10 +2,36 @@
 
 namespace Drupal\jsonapi\Error;
 
-class ErrorHandler extends ErrorHandlerBase {
+class ErrorHandler {
 
   /**
-   * {@inheritdoc}
+   * Register the handler.
+   */
+  public function register() {
+    set_error_handler(get_called_class() . '::handle');
+  }
+
+  /**
+   * Go back to normal and restore the previous error handler.
+   */
+  public function restore() {
+    restore_error_handler();
+  }
+
+  /**
+   * Handle the PHP error with custom business logic.
+   *
+   * @param $error_level
+   *   The level of the error raised.
+   * @param $message
+   *   The error message.
+   * @param $filename
+   *   The filename that the error was raised in.
+   * @param $line
+   *   The line number the error was raised at.
+   * @param $context
+   *   An array that points to the active symbol table at the point the error
+   *   occurred.
    */
   public static function handle($error_level, $message, $filename, $line, $context) {
     $message = 'Unexpected PHP error: ' . $message;
diff --git a/src/Error/ErrorHandlerBase.php b/src/Error/ErrorHandlerBase.php
deleted file mode 100644
index ce75a82..0000000
--- a/src/Error/ErrorHandlerBase.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-namespace Drupal\jsonapi\Error;
-
-abstract class ErrorHandlerBase implements ErrorHandlerInterface {
-
-  /**
-   * {@inheritdoc}
-   */
-  public function register() {
-    set_error_handler(get_called_class() . '::handle');
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function restore() {
-    restore_error_handler();
-  }
-
-}
diff --git a/src/Error/ErrorHandlerInterface.php b/src/Error/ErrorHandlerInterface.php
deleted file mode 100644
index 7302054..0000000
--- a/src/Error/ErrorHandlerInterface.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-namespace Drupal\jsonapi\Error;
-
-interface ErrorHandlerInterface {
-
-  /**
-   * Register the handler.
-   */
-  public function register();
-
-  /**
-   * Go back to normal and restore the previous error handler.
-   */
-  public function restore();
-
-  /**
-   * Handle the PHP error with custom business logic.
-   *
-   * @param $error_level
-   *   The level of the error raised.
-   * @param $message
-   *   The error message.
-   * @param $filename
-   *   The filename that the error was raised in.
-   * @param $line
-   *   The line number the error was raised at.
-   * @param $context
-   *   An array that points to the active symbol table at the point the error
-   *   occurred.
-   */
-  public static function handle($error_level, $message, $filename, $line, $context);
-
-}
diff --git a/src/LinkManager/LinkManager.php b/src/LinkManager/LinkManager.php
index 8807396..830fc97 100644
--- a/src/LinkManager/LinkManager.php
+++ b/src/LinkManager/LinkManager.php
@@ -15,7 +15,7 @@ use Symfony\Component\Routing\Matcher\RequestMatcherInterface;
  *
  * @package Drupal\jsonapi
  */
-class LinkManager implements LinkManagerInterface {
+class LinkManager {
 
   /**
    * @var \Symfony\Component\Routing\Matcher\RequestMatcherInterface
@@ -41,7 +41,20 @@ class LinkManager implements LinkManagerInterface {
   }
 
   /**
-   * {@inheritdoc}
+   * Gets a link for the entity.
+   *
+   * @param int $entity_id
+   *   The entity ID to generate the link for. Note: Depending on the
+   *   configuration this might be the UUID as well.
+   * @param \Drupal\jsonapi\ResourceType\ResourceType $resource_type
+   *   The JSON API resource type.
+   * @param array $route_parameters
+   *   Parameters for the route generation.
+   * @param string $key
+   *   A key to build the route identifier.
+   *
+   * @return string
+   *   The URL string.
    */
   public function getEntityLink($entity_id, ResourceType $resource_type, array $route_parameters, $key) {
     $route_parameters += [
@@ -53,7 +66,16 @@ class LinkManager implements LinkManagerInterface {
   }
 
   /**
-   * {@inheritdoc}
+   * Get the full URL for a given request object.
+   *
+   * @param \Symfony\Component\HttpFoundation\Request $request
+   *   The request object.
+   * @param array|null $query
+   *   The query parameters to use. Leave it empty to get the query from the
+   *   request object.
+   *
+   * @return string
+   *   The full URL.
    */
   public function getRequestLink(Request $request, $query = NULL) {
     $query = $query ?: (array) $request->query->getIterator();
@@ -70,7 +92,18 @@ class LinkManager implements LinkManagerInterface {
   }
 
   /**
-   * {@inheritdoc}
+   * Get the full URL for a given request object.
+   *
+   * @param \Symfony\Component\HttpFoundation\Request $request
+   *   The request object.
+   * @param array $link_context
+   *   An associative array with extra data to build the links.
+   *
+   * @throws \Drupal\jsonapi\Error\SerializableHttpException
+   *   When the offset and size are invalid.
+   *
+   * @return string
+   *   The full URL.
    */
   public function getPagerLinks(Request $request, array $link_context = []) {
     $params = $request->get('_json_api_params');
diff --git a/src/LinkManager/LinkManagerInterface.php b/src/LinkManager/LinkManagerInterface.php
deleted file mode 100644
index d9f9909..0000000
--- a/src/LinkManager/LinkManagerInterface.php
+++ /dev/null
@@ -1,63 +0,0 @@
-<?php
-
-namespace Drupal\jsonapi\LinkManager;
-
-use Drupal\jsonapi\ResourceType\ResourceType;
-use Symfony\Component\HttpFoundation\Request;
-
-/**
- * Class LinkManagerInterface.
- *
- * @package Drupal\jsonapi
- */
-interface LinkManagerInterface {
-
-  /**
-   * Gets a link for the entity.
-   *
-   * @param int $entity_id
-   *   The entity ID to generate the link for. Note: Depending on the
-   *   configuration this might be the UUID as well.
-   * @param \Drupal\jsonapi\ResourceType\ResourceType $resource_type
-   *   The JSON API resource type.
-   * @param array $route_parameters
-   *   Parameters for the route generation.
-   * @param string $key
-   *   A key to build the route identifier.
-   *
-   * @return string
-   *   The URL string.
-   */
-  public function getEntityLink($entity_id, ResourceType $resource_type, array $route_parameters, $key);
-
-  /**
-   * Get the full URL for a given request object.
-   *
-   * @param \Symfony\Component\HttpFoundation\Request $request
-   *   The request object.
-   * @param array|null $query
-   *   The query parameters to use. Leave it empty to get the query from the
-   *   request object.
-   *
-   * @return string
-   *   The full URL.
-   */
-  public function getRequestLink(Request $request, $query = NULL);
-
-  /**
-   * Get the full URL for a given request object.
-   *
-   * @param \Symfony\Component\HttpFoundation\Request $request
-   *   The request object.
-   * @param array $link_context
-   *   An associative array with extra data to build the links.
-   *
-   * @throws \Drupal\jsonapi\Error\SerializableHttpException
-   *   When the offset and size are invalid.
-   *
-   * @return string
-   *   The full URL.
-   */
-  public function getPagerLinks(Request $request, array $link_context = []);
-
-}
diff --git a/src/Normalizer/EntityNormalizer.php b/src/Normalizer/EntityNormalizer.php
index 00c7418..951677b 100644
--- a/src/Normalizer/EntityNormalizer.php
+++ b/src/Normalizer/EntityNormalizer.php
@@ -10,7 +10,7 @@ use Drupal\Core\Field\EntityReferenceFieldItemList;
 use Drupal\jsonapi\Normalizer\Value\EntityNormalizerValue;
 use Drupal\jsonapi\ResourceType\ResourceType;
 use Drupal\jsonapi\Error\SerializableHttpException;
-use Drupal\jsonapi\LinkManager\LinkManagerInterface;
+use Drupal\jsonapi\LinkManager\LinkManager;
 use Drupal\jsonapi\Normalizer\Value\NullFieldNormalizerValue;
 use Drupal\jsonapi\ResourceType\ResourceTypeRepository;
 use Symfony\Component\Serializer\Normalizer\DenormalizerInterface;
@@ -37,7 +37,7 @@ class EntityNormalizer extends NormalizerBase implements DenormalizerInterface {
   /**
    * The link manager.
    *
-   * @var \Drupal\jsonapi\LinkManager\LinkManagerInterface
+   * @var \Drupal\jsonapi\LinkManager\LinkManager
    */
   protected $linkManager;
 
@@ -58,14 +58,14 @@ class EntityNormalizer extends NormalizerBase implements DenormalizerInterface {
   /**
    * Constructs an ContentEntityNormalizer object.
    *
-   * @param \Drupal\jsonapi\LinkManager\LinkManagerInterface $link_manager
+   * @param \Drupal\jsonapi\LinkManager\LinkManager $link_manager
    *   The link manager.
    * @param \Drupal\jsonapi\ResourceType\ResourceTypeRepository $resource_type_repository
    *   The JSON API resource type repository.
    * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager
    *   The entity type manager.
    */
-  public function __construct(LinkManagerInterface $link_manager, ResourceTypeRepository $resource_type_repository, EntityTypeManagerInterface $entity_type_manager) {
+  public function __construct(LinkManager $link_manager, ResourceTypeRepository $resource_type_repository, EntityTypeManagerInterface $entity_type_manager) {
     $this->linkManager = $link_manager;
     $this->resourceTypeRepository = $resource_type_repository;
     $this->entityTypeManager = $entity_type_manager;
diff --git a/src/Normalizer/EntityReferenceFieldNormalizer.php b/src/Normalizer/EntityReferenceFieldNormalizer.php
index 43c29e1..d325d4e 100644
--- a/src/Normalizer/EntityReferenceFieldNormalizer.php
+++ b/src/Normalizer/EntityReferenceFieldNormalizer.php
@@ -10,7 +10,7 @@ use Drupal\Core\Field\TypedData\FieldItemDataDefinition;
 use Drupal\jsonapi\ResourceType\ResourceTypeRepository;
 use Drupal\jsonapi\Resource\EntityCollection;
 use Drupal\jsonapi\Error\SerializableHttpException;
-use Drupal\jsonapi\LinkManager\LinkManagerInterface;
+use Drupal\jsonapi\LinkManager\LinkManager;
 use Symfony\Component\Serializer\Normalizer\DenormalizerInterface;
 
 /**
@@ -28,7 +28,7 @@ class EntityReferenceFieldNormalizer extends FieldNormalizer implements Denormal
   /**
    * The link manager.
    *
-   * @param \Drupal\jsonapi\LinkManager\LinkManagerInterface
+   * @param \Drupal\jsonapi\LinkManager\LinkManager
    */
   protected $linkManager;
 
@@ -56,18 +56,18 @@ class EntityReferenceFieldNormalizer extends FieldNormalizer implements Denormal
   /**
    * Instantiates a EntityReferenceFieldNormalizer object.
    *
-   * @param \Drupal\jsonapi\LinkManager\LinkManagerInterface $link_manager
+   * @param \Drupal\jsonapi\LinkManager\LinkManager $link_manager
    *   The link manager.
    * @param \Drupal\Core\Entity\EntityFieldManagerInterface $field_manager
    *   The entity field manager.
    * @param \Drupal\Core\Field\FieldTypePluginManagerInterface $plugin_manager
    *   The plugin manager for fields.
    * @param \Drupal\jsonapi\ResourceType\ResourceTypeRepository $resource_type_repository
-   *   The JSON API resource type repository.aaaa
+   *   The JSON API resource type repository.
    * @param \Drupal\Core\Entity\EntityRepositoryInterface $entity_repository
    *   The entity repository.
    */
-  public function __construct(LinkManagerInterface $link_manager, EntityFieldManagerInterface $field_manager, FieldTypePluginManagerInterface $plugin_manager, ResourceTypeRepository $resource_type_repository, EntityRepositoryInterface $entity_repository) {
+  public function __construct(LinkManager $link_manager, EntityFieldManagerInterface $field_manager, FieldTypePluginManagerInterface $plugin_manager, ResourceTypeRepository $resource_type_repository, EntityRepositoryInterface $entity_repository) {
     $this->linkManager = $link_manager;
     $this->fieldManager = $field_manager;
     $this->pluginManager = $plugin_manager;
diff --git a/src/Normalizer/JsonApiDocumentTopLevelNormalizer.php b/src/Normalizer/JsonApiDocumentTopLevelNormalizer.php
index 22798a4..cad1895 100644
--- a/src/Normalizer/JsonApiDocumentTopLevelNormalizer.php
+++ b/src/Normalizer/JsonApiDocumentTopLevelNormalizer.php
@@ -4,10 +4,10 @@ namespace Drupal\jsonapi\Normalizer;
 
 use Drupal\Core\Entity\EntityTypeManagerInterface;
 use Drupal\Core\Field\EntityReferenceFieldItemListInterface;
-use Drupal\jsonapi\Context\CurrentContextInterface;
+use Drupal\jsonapi\Context\CurrentContext;
 use Drupal\jsonapi\Normalizer\Value\DocumentRootNormalizerValue;
-use Drupal\jsonapi\Resource\EntityCollectionInterface;
-use Drupal\jsonapi\LinkManager\LinkManagerInterface;
+use Drupal\jsonapi\Resource\EntityCollection;
+use Drupal\jsonapi\LinkManager\LinkManager;
 use Drupal\jsonapi\Resource\JsonApiDocumentTopLevel;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\Serializer\Normalizer\DenormalizerInterface;
@@ -28,14 +28,14 @@ class JsonApiDocumentTopLevelNormalizer extends NormalizerBase implements Denorm
   /**
    * The link manager to get the links.
    *
-   * @var \Drupal\jsonapi\LinkManager\LinkManagerInterface
+   * @var \Drupal\jsonapi\LinkManager\LinkManager
    */
   protected $linkManager;
 
   /**
    * The current JSON API request context.
    *
-   * @var \Drupal\jsonapi\Context\CurrentContextInterface
+   * @var \Drupal\jsonapi\Context\CurrentContext
    */
   protected $currentContext;
 
@@ -49,14 +49,14 @@ class JsonApiDocumentTopLevelNormalizer extends NormalizerBase implements Denorm
   /**
    * Constructs an ContentEntityNormalizer object.
    *
-   * @param \Drupal\jsonapi\LinkManager\LinkManagerInterface $link_manager
+   * @param \Drupal\jsonapi\LinkManager\LinkManager $link_manager
    *   The link manager to get the links.
-   * @param \Drupal\jsonapi\Context\CurrentContextInterface $current_context
+   * @param \Drupal\jsonapi\Context\CurrentContext $current_context
    *   The current context.
    * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager
    *   The entity type manager.
    */
-  public function __construct(LinkManagerInterface $link_manager, CurrentContextInterface $current_context, EntityTypeManagerInterface $entity_type_manager) {
+  public function __construct(LinkManager $link_manager, CurrentContext $current_context, EntityTypeManagerInterface $entity_type_manager) {
     $this->linkManager = $link_manager;
     $this->currentContext = $current_context;
     $this->entityTypeManager = $entity_type_manager;
@@ -135,7 +135,7 @@ class JsonApiDocumentTopLevelNormalizer extends NormalizerBase implements Denorm
   /**
    * Build the normalizer value.
    *
-   * @return \Drupal\jsonapi\Normalizer\Value\EntityNormalizerValueInterface
+   * @return \Drupal\jsonapi\Normalizer\Value\DocumentRootNormalizerValue
    *   The normalizer value.
    */
   public function buildNormalizerValue($data, $format = NULL, array $context = array()) {
@@ -147,7 +147,7 @@ class JsonApiDocumentTopLevelNormalizer extends NormalizerBase implements Denorm
       return $output;
     }
     else {
-      $is_collection = $data instanceof EntityCollectionInterface;
+      $is_collection = $data instanceof EntityCollection;
       // To improve the logical workflow deal with an array at all times.
       $entities = $is_collection ? $data->toArray() : [$data];
       $context['has_next_page'] = $is_collection ? $data->hasNextPage() : FALSE;
diff --git a/src/Normalizer/Relationship.php b/src/Normalizer/Relationship.php
index b274c1d..2483b6d 100644
--- a/src/Normalizer/Relationship.php
+++ b/src/Normalizer/Relationship.php
@@ -7,7 +7,7 @@ use Drupal\Core\Entity\EntityInterface;
 use Drupal\Core\Field\FieldStorageDefinitionInterface;
 use Drupal\Core\Session\AccountInterface;
 use Drupal\jsonapi\ResourceType\ResourceTypeRepository;
-use Drupal\jsonapi\Resource\EntityCollectionInterface;
+use Drupal\jsonapi\Resource\EntityCollection;
 
 /**
  * Use this class to create a relationship in your normalizer without having an
@@ -62,14 +62,14 @@ class Relationship implements AccessibleInterface {
    *   The name of the relationship.
    * @param int $cardinality
    *   The relationship cardinality.
-   * @param \Drupal\jsonapi\Resource\EntityCollectionInterface $entities
+   * @param \Drupal\jsonapi\Resource\EntityCollection $entities
    *   A collection of entities.
    * @param \Drupal\Core\Entity\EntityInterface $host_entity
    *   The host entity.
    * @param string $target_key
    *   The property name of the relationship id.
    */
-  public function __construct(ResourceTypeRepository $resource_type_repository, $field_name, $cardinality = FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED, EntityCollectionInterface $entities, EntityInterface $host_entity, $target_key = 'target_id') {
+  public function __construct(ResourceTypeRepository $resource_type_repository, $field_name, $cardinality = FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED, EntityCollection $entities, EntityInterface $host_entity, $target_key = 'target_id') {
     $this->resourceTypeRepository = $resource_type_repository;
     $this->propertyName = $field_name;
     $this->cardinality = $cardinality;
diff --git a/src/Normalizer/RelationshipNormalizer.php b/src/Normalizer/RelationshipNormalizer.php
index aeebcac..ff142a9 100644
--- a/src/Normalizer/RelationshipNormalizer.php
+++ b/src/Normalizer/RelationshipNormalizer.php
@@ -5,7 +5,7 @@ namespace Drupal\jsonapi\Normalizer;
 use Drupal\Core\Entity\EntityInterface;
 use Drupal\jsonapi\Normalizer\Value\RelationshipNormalizerValue;
 use Drupal\jsonapi\ResourceType\ResourceTypeRepository;
-use Drupal\jsonapi\LinkManager\LinkManagerInterface;
+use Drupal\jsonapi\LinkManager\LinkManager;
 use Symfony\Component\Serializer\Exception\UnexpectedValueException;
 
 class RelationshipNormalizer extends NormalizerBase {
@@ -27,7 +27,7 @@ class RelationshipNormalizer extends NormalizerBase {
   /**
    * The link manager.
    *
-   * @var \Drupal\jsonapi\LinkManager\LinkManagerInterface
+   * @var \Drupal\jsonapi\LinkManager\LinkManager
    */
   protected $linkManager;
 
@@ -36,10 +36,10 @@ class RelationshipNormalizer extends NormalizerBase {
    *
    * @param \Drupal\jsonapi\ResourceType\ResourceTypeRepository $resource_type_repository
    *   The JSON API resource type repository.
-   * @param \Drupal\jsonapi\LinkManager\LinkManagerInterface $link_manager
+   * @param \Drupal\jsonapi\LinkManager\LinkManager $link_manager
    *   The link manager.
    */
-  public function __construct(ResourceTypeRepository $resource_type_repository, LinkManagerInterface $link_manager) {
+  public function __construct(ResourceTypeRepository $resource_type_repository, LinkManager $link_manager) {
     $this->resourceTypeRepository = $resource_type_repository;
     $this->linkManager = $link_manager;
   }
diff --git a/src/Normalizer/Value/DocumentRootNormalizerValue.php b/src/Normalizer/Value/DocumentRootNormalizerValue.php
index c164b2e..8980676 100644
--- a/src/Normalizer/Value/DocumentRootNormalizerValue.php
+++ b/src/Normalizer/Value/DocumentRootNormalizerValue.php
@@ -3,6 +3,7 @@
 namespace Drupal\jsonapi\Normalizer\Value;
 
 use Drupal\Component\Utility\NestedArray;
+use Drupal\Core\Cache\RefinableCacheableDependencyInterface;
 use Drupal\Core\Cache\RefinableCacheableDependencyTrait;
 use Drupal\jsonapi\RequestCacheabilityDependency;
 
@@ -11,7 +12,7 @@ use Drupal\jsonapi\RequestCacheabilityDependency;
  *
  * @package Drupal\jsonapi\Normalizer\Value
  */
-class DocumentRootNormalizerValue implements DocumentRootNormalizerValueInterface {
+class DocumentRootNormalizerValue implements ValueExtractorInterface, RefinableCacheableDependencyInterface  {
 
   use RefinableCacheableDependencyTrait;
 
@@ -46,7 +47,7 @@ class DocumentRootNormalizerValue implements DocumentRootNormalizerValueInterfac
   /**
    * The link manager.
    *
-   * @var \Drupal\jsonapi\LinkManager\LinkManagerInterface
+   * @var \Drupal\jsonapi\LinkManager\LinkManager
    */
   protected $linkManager;
 
@@ -141,7 +142,7 @@ class DocumentRootNormalizerValue implements DocumentRootNormalizerValueInterfac
   /**
    * Gets a flattened list of includes in all the chain.
    *
-   * @return EntityNormalizerValueInterface[]
+   * @return \Drupal\jsonapi\Normalizer\Value\EntityNormalizerValue[]
    *   The array of included relationships.
    */
   public function getIncludes() {
diff --git a/src/Normalizer/Value/DocumentRootNormalizerValueInterface.php b/src/Normalizer/Value/DocumentRootNormalizerValueInterface.php
deleted file mode 100644
index cb303d8..0000000
--- a/src/Normalizer/Value/DocumentRootNormalizerValueInterface.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-
-namespace Drupal\jsonapi\Normalizer\Value;
-
-use Drupal\Core\Cache\RefinableCacheableDependencyInterface;
-
-/**
- * Class DocumentRootNormalizerValueInterface.
- *
- * @package Drupal\jsonapi\Normalizer\Value
- */
-interface DocumentRootNormalizerValueInterface extends ValueExtractorInterface, RefinableCacheableDependencyInterface {
-
-  /**
-   * Gets a flattened list of includes in all the chain.
-   *
-   * @return EntityNormalizerValueInterface[]
-   *   The array of included relationships.
-   */
-  public function getIncludes();
-
-}
diff --git a/src/Normalizer/Value/EntityNormalizerValue.php b/src/Normalizer/Value/EntityNormalizerValue.php
index 13ec15f..a769cd1 100644
--- a/src/Normalizer/Value/EntityNormalizerValue.php
+++ b/src/Normalizer/Value/EntityNormalizerValue.php
@@ -2,6 +2,7 @@
 
 namespace Drupal\jsonapi\Normalizer\Value;
 
+use Drupal\Core\Cache\RefinableCacheableDependencyInterface;
 use Drupal\Core\Cache\RefinableCacheableDependencyTrait;
 use Drupal\Core\Entity\EntityInterface;
 
@@ -10,7 +11,7 @@ use Drupal\Core\Entity\EntityInterface;
  *
  * @package Drupal\jsonapi\Normalizer\Value
  */
-class EntityNormalizerValue implements EntityNormalizerValueInterface {
+class EntityNormalizerValue implements ValueExtractorInterface, RefinableCacheableDependencyInterface  {
 
   use RefinableCacheableDependencyTrait;
 
@@ -45,7 +46,7 @@ class EntityNormalizerValue implements EntityNormalizerValueInterface {
   /**
    * The link manager.
    *
-   * @param \Drupal\jsonapi\LinkManager\LinkManagerInterface
+   * @param \Drupal\jsonapi\LinkManager\LinkManager
    */
   protected $linkManager;
 
@@ -121,7 +122,10 @@ class EntityNormalizerValue implements EntityNormalizerValueInterface {
   }
 
   /**
-   * {@inheritdoc}
+   * Gets the values.
+   *
+   * @return mixed
+   *   The values.
    */
   public function getValues() {
     return $this->values;
@@ -130,7 +134,7 @@ class EntityNormalizerValue implements EntityNormalizerValueInterface {
   /**
    * Gets a flattened list of includes in all the chain.
    *
-   * @return EntityNormalizerValueInterface
+   * @return \Drupal\jsonapi\Normalizer\Value\EntityNormalizerValue[]
    *   The array of included relationships.
    */
   public function getIncludes() {
diff --git a/src/Normalizer/Value/EntityNormalizerValueInterface.php b/src/Normalizer/Value/EntityNormalizerValueInterface.php
deleted file mode 100644
index bb70efe..0000000
--- a/src/Normalizer/Value/EntityNormalizerValueInterface.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-
-namespace Drupal\jsonapi\Normalizer\Value;
-
-use Drupal\Core\Cache\RefinableCacheableDependencyInterface;
-
-/**
- * Class EntityNormalizerValueInterface.
- *
- * @package Drupal\jsonapi\Normalizer\Value
- */
-interface EntityNormalizerValueInterface extends ValueExtractorInterface, RefinableCacheableDependencyInterface {
-
-  /**
-   * Gets the values.
-   *
-   * @return mixed
-   *   The values.
-   */
-  public function getValues();
-
-}
diff --git a/src/Normalizer/Value/FieldItemNormalizerValue.php b/src/Normalizer/Value/FieldItemNormalizerValue.php
index 761a7e2..f34d97e 100644
--- a/src/Normalizer/Value/FieldItemNormalizerValue.php
+++ b/src/Normalizer/Value/FieldItemNormalizerValue.php
@@ -19,7 +19,7 @@ class FieldItemNormalizerValue implements FieldItemNormalizerValueInterface {
   /**
    * Included entity objects.
    *
-   * @param EntityNormalizerValueInterface
+   * @param \Drupal\jsonapi\Normalizer\Value\EntityNormalizerValue
    */
   protected $include;
 
diff --git a/src/Normalizer/Value/FieldItemNormalizerValueInterface.php b/src/Normalizer/Value/FieldItemNormalizerValueInterface.php
index e8bafd0..88919cf 100644
--- a/src/Normalizer/Value/FieldItemNormalizerValueInterface.php
+++ b/src/Normalizer/Value/FieldItemNormalizerValueInterface.php
@@ -20,7 +20,7 @@ interface FieldItemNormalizerValueInterface extends ValueExtractorInterface {
   /**
    * Gets the include.
    *
-   * @return EntityNormalizerValueInterface
+   * @return \Drupal\jsonapi\Normalizer\Value\EntityNormalizerValue
    *   The include.
    */
   public function getInclude();
diff --git a/src/Normalizer/Value/RelationshipItemNormalizerValue.php b/src/Normalizer/Value/RelationshipItemNormalizerValue.php
index c00af71..62e50e0 100644
--- a/src/Normalizer/Value/RelationshipItemNormalizerValue.php
+++ b/src/Normalizer/Value/RelationshipItemNormalizerValue.php
@@ -1,6 +1,8 @@
 <?php
 
 namespace Drupal\jsonapi\Normalizer\Value;
+
+use Drupal\Core\Cache\RefinableCacheableDependencyInterface;
 use Drupal\Core\Cache\RefinableCacheableDependencyTrait;
 
 /**
@@ -8,7 +10,7 @@ use Drupal\Core\Cache\RefinableCacheableDependencyTrait;
  *
  * @package Drupal\jsonapi\Normalizer\Value
  */
-class RelationshipItemNormalizerValue extends FieldItemNormalizerValue implements RelationshipItemNormalizerValueInterface {
+class RelationshipItemNormalizerValue extends FieldItemNormalizerValue implements RefinableCacheableDependencyInterface {
 
   use RefinableCacheableDependencyTrait;
 
@@ -46,7 +48,10 @@ class RelationshipItemNormalizerValue extends FieldItemNormalizerValue implement
   }
 
   /**
-   * {@inheritdoc}
+   * Sets the resource.
+   *
+   * @param string $resource
+   *   The resource to set.
    */
   public function setResource($resource) {
     $this->resource = $resource;
diff --git a/src/Normalizer/Value/RelationshipItemNormalizerValueInterface.php b/src/Normalizer/Value/RelationshipItemNormalizerValueInterface.php
deleted file mode 100644
index 56d3178..0000000
--- a/src/Normalizer/Value/RelationshipItemNormalizerValueInterface.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-
-namespace Drupal\jsonapi\Normalizer\Value;
-
-use Drupal\Core\Cache\RefinableCacheableDependencyInterface;
-
-/**
- * Class EntityReferenceItemNormalizerValueInterface.
- *
- * @package Drupal\jsonapi\Normalizer\Value
- */
-interface RelationshipItemNormalizerValueInterface extends FieldItemNormalizerValueInterface, RefinableCacheableDependencyInterface {
-
-  /**
-   * Sets the resource.
-   *
-   * @param string $resource
-   *   The resource to set.
-   */
-  public function setResource($resource);
-
-}
diff --git a/src/Normalizer/Value/RelationshipNormalizerValue.php b/src/Normalizer/Value/RelationshipNormalizerValue.php
index 45af3fb..f4ab112 100644
--- a/src/Normalizer/Value/RelationshipNormalizerValue.php
+++ b/src/Normalizer/Value/RelationshipNormalizerValue.php
@@ -12,7 +12,7 @@ class RelationshipNormalizerValue extends FieldNormalizerValue implements Relati
   /**
    * The link manager.
    *
-   * @param \Drupal\jsonapi\LinkManager\LinkManagerInterface
+   * @param \Drupal\jsonapi\LinkManager\LinkManager
    */
   protected $linkManager;
 
@@ -54,7 +54,7 @@ class RelationshipNormalizerValue extends FieldNormalizerValue implements Relati
     $this->linkManager = $link_context['link_manager'];
     $this->resourceType = $link_context['resource_type'];
     array_walk($values, function ($field_item_value) {
-      if (!$field_item_value instanceof RelationshipItemNormalizerValueInterface) {
+      if (!$field_item_value instanceof RelationshipItemNormalizerValue) {
         throw new \RuntimeException(sprintf('Unexpected normalizer item value for this %s.', get_called_class()));
       }
     });
diff --git a/src/Query/QueryBuilder.php b/src/Query/QueryBuilder.php
index 17479d9..c71e45a 100644
--- a/src/Query/QueryBuilder.php
+++ b/src/Query/QueryBuilder.php
@@ -8,8 +8,8 @@ use Drupal\jsonapi\Error\SerializableHttpException;
 use Drupal\jsonapi\Routing\Param\OffsetPage;
 use Drupal\jsonapi\Routing\Param\Filter;
 use Drupal\jsonapi\Routing\Param\JsonApiParamInterface;
-use Drupal\jsonapi\Context\CurrentContextInterface;
-use Drupal\jsonapi\Context\FieldResolverInterface;
+use Drupal\jsonapi\Context\CurrentContext;
+use Drupal\jsonapi\Context\FieldResolver;
 use Drupal\jsonapi\Routing\Param\Sort;
 
 /**
@@ -19,7 +19,7 @@ use Drupal\jsonapi\Routing\Param\Sort;
  *
  * @internal
  */
-class QueryBuilder implements QueryBuilderInterface {
+class QueryBuilder {
 
   /**
    * The entity type object that should be used for the query.
@@ -41,14 +41,14 @@ class QueryBuilder implements QueryBuilderInterface {
   /**
    * The JSON API current context service.
    *
-   * @var \Drupal\jsonapi\Context\CurrentContextInterface
+   * @var \Drupal\jsonapi\Context\CurrentContext
    */
   protected $currentContext;
 
   /**
    * The field resolver service.
    *
-   * @var \Drupal\jsonapi\Context\FieldResolverInterface
+   * @var \Drupal\jsonapi\Context\FieldResolver
    */
   protected $fieldResolver;
 
@@ -57,19 +57,27 @@ class QueryBuilder implements QueryBuilderInterface {
    *
    * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager
    *   An instance of a QueryFactory.
-   * @param \Drupal\jsonapi\Context\CurrentContextInterface $current_context
+   * @param \Drupal\jsonapi\Context\CurrentContext $current_context
    *   An instance of the current context service.
-   * @param \Drupal\jsonapi\Context\FieldResolverInterface $field_resolver
+   * @param \Drupal\jsonapi\Context\FieldResolver $field_resolver
    *   The field resolver service.
    */
-  public function __construct(EntityTypeManagerInterface $entity_type_manager, CurrentContextInterface $current_context, FieldResolverInterface $field_resolver) {
+  public function __construct(EntityTypeManagerInterface $entity_type_manager, CurrentContext $current_context, FieldResolver $field_resolver) {
     $this->entityTypeManager = $entity_type_manager;
     $this->currentContext = $current_context;
     $this->fieldResolver = $field_resolver;
   }
 
   /**
-   * {@inheritdoc}
+   * Creates a new Entity Query.
+   *
+   * @param \Drupal\Core\Entity\EntityTypeInterface $entity_type
+   *   The entity type for which to create a query.
+   * @param \Drupal\jsonapi\Routing\Param\JsonApiParamInterface[] $params
+   *   The JSON API parameters.
+   *
+   * @return \Drupal\Core\Entity\Query\QueryInterface
+   *   The new query.
    */
   public function newQuery(EntityTypeInterface $entity_type, array $params = []) {
     $this->entityType = $entity_type;
diff --git a/src/Query/QueryBuilderInterface.php b/src/Query/QueryBuilderInterface.php
deleted file mode 100644
index 3d36a98..0000000
--- a/src/Query/QueryBuilderInterface.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-
-namespace Drupal\jsonapi\Query;
-
-use Drupal\Core\Entity\EntityTypeInterface;
-
-/**
- * Interface QueryBuilderInterface.
- *
- * @package Drupal\jsonapi\Query
- *
- * @internal
- */
-interface QueryBuilderInterface {
-
-  /**
-   * Creates a new Entity Query.
-   *
-   * @param \Drupal\Core\Entity\EntityTypeInterface $entity_type
-   *   The entity type for which to create a query.
-   * @param \Drupal\jsonapi\Routing\Param\JsonApiParamInterface[] $params
-   *   The JSON API parameters.
-   *
-   * @return \Drupal\Core\Entity\Query\QueryInterface
-   *   The new query.
-   */
-  public function newQuery(EntityTypeInterface $entity_type, array $params = []);
-
-}
diff --git a/src/Resource/EntityCollection.php b/src/Resource/EntityCollection.php
index a1f6b3e..aefd5cb 100644
--- a/src/Resource/EntityCollection.php
+++ b/src/Resource/EntityCollection.php
@@ -9,7 +9,7 @@ namespace Drupal\jsonapi\Resource;
  *
  * @package Drupal\jsonapi
  */
-class EntityCollection implements EntityCollectionInterface {
+class EntityCollection implements \IteratorAggregate, \Countable {
 
   /**
    * Entity storage.
@@ -56,21 +56,33 @@ class EntityCollection implements EntityCollectionInterface {
   }
 
   /**
-   * {@inheritdoc}
+   * Returns the collection as an array.
+   *
+   * @return \Drupal\Core\Entity\EntityInterface[]
+   *   The array of entities.
    */
   public function toArray() {
     return $this->entities;
   }
 
   /**
-   * {@inheritdoc}
+   * Checks if there is a next page in the collection.
+   *
+   * @return bool
+   *   TRUE if the collection has a next page.
    */
   public function hasNextPage() {
     return (bool) $this->hasNextPage;
   }
 
   /**
-   * {@inheritdoc}
+   * Sets the has next page flag.
+   *
+   * Once the collection query has been executed and we build the entity collection, we now if there will be a next page
+   * with extra entities.
+   *
+   * @param bool $has_next_page
+   *   TRUE if the collection has a next page.
    */
   public function setHasNextPage($has_next_page) {
     return $this->hasNextPage = (bool) $has_next_page;
diff --git a/src/Resource/EntityCollectionInterface.php b/src/Resource/EntityCollectionInterface.php
deleted file mode 100644
index 197af26..0000000
--- a/src/Resource/EntityCollectionInterface.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-namespace Drupal\jsonapi\Resource;
-
-/**
- * Class EntityCollectionInterface.
- *
- * @package Drupal\jsonapi
- */
-interface EntityCollectionInterface extends \IteratorAggregate, \Countable {
-
-  /**
-   * Returns the collection as an array.
-   *
-   * @return \Drupal\Core\Entity\EntityInterface[]
-   *   The array of entities.
-   */
-  public function toArray();
-
-  /**
-   * Checks if there is a next page in the collection.
-   *
-   * @return bool
-   *   TRUE if the collection has a next page.
-   */
-  public function hasNextPage();
-
-  /**
-   * Sets the has next page flag.
-   *
-   * Once the collection query has been executed and we build the entity collection, we now if there will be a next page
-   * with extra entities.
-   *
-   * @param bool $has_next_page
-   *   TRUE if the collection has a next page.
-   */
-  public function setHasNextPage($has_next_page);
-
-}
diff --git a/src/Resource/JsonApiDocumentTopLevel.php b/src/Resource/JsonApiDocumentTopLevel.php
index 9aad1a5..ccecd88 100644
--- a/src/Resource/JsonApiDocumentTopLevel.php
+++ b/src/Resource/JsonApiDocumentTopLevel.php
@@ -17,14 +17,14 @@ class JsonApiDocumentTopLevel {
   /**
    * The data to normalize.
    *
-   * @var \Drupal\Core\Entity\EntityInterface|\Drupal\jsonapi\EntityCollectionInterface
+   * @var \Drupal\Core\Entity\EntityInterface|\Drupal\jsonapi\EntityCollection
    */
   protected $data;
 
   /**
    * Instantiates a JsonApiDocumentTopLevel object.
    *
-   * @param \Drupal\Core\Entity\EntityInterface|\Drupal\jsonapi\EntityCollectionInterface $data
+   * @param \Drupal\Core\Entity\EntityInterface|\Drupal\jsonapi\EntityCollection $data
    *   The data to normalize. It can be either a straight up entity or a
    *   collection of entities.
    */
@@ -35,7 +35,7 @@ class JsonApiDocumentTopLevel {
   /**
    * Gets the data.
    *
-   * @return \Drupal\Core\Entity\EntityInterface|\Drupal\jsonapi\EntityCollectionInterface
+   * @return \Drupal\Core\Entity\EntityInterface|\Drupal\jsonapi\EntityCollection
    *   The data.
    */
   public function getData() {
diff --git a/tests/src/Kernel/Controller/EntityResourceTest.php b/tests/src/Kernel/Controller/EntityResourceTest.php
index eb784c6..c88cc40 100644
--- a/tests/src/Kernel/Controller/EntityResourceTest.php
+++ b/tests/src/Kernel/Controller/EntityResourceTest.php
@@ -9,7 +9,7 @@ use Drupal\Core\Routing\CurrentRouteMatch;
 use Drupal\jsonapi\ResourceType\ResourceType;
 use Drupal\jsonapi\Context\CurrentContext;
 use Drupal\jsonapi\Controller\EntityResource;
-use Drupal\jsonapi\Resource\EntityCollectionInterface;
+use Drupal\jsonapi\Resource\EntityCollection;
 use Drupal\jsonapi\Resource\JsonApiDocumentTopLevel;
 use Drupal\jsonapi\Routing\Param\Filter;
 use Drupal\jsonapi\Routing\Param\Sort;
@@ -185,7 +185,7 @@ class EntityResourceTest extends JsonapiKernelTestBase {
 
     // Assertions.
     $this->assertInstanceOf(JsonApiDocumentTopLevel::class, $response->getResponseData());
-    $this->assertInstanceOf(EntityCollectionInterface::class, $response->getResponseData()->getData());
+    $this->assertInstanceOf(EntityCollection::class, $response->getResponseData()->getData());
     $this->assertEquals(1, $response->getResponseData()->getData()->getIterator()->current()->id());
     $this->assertEquals(['node:3', 'node_list'], $response->getCacheableMetadata()->getCacheTags());
   }
@@ -237,7 +237,7 @@ class EntityResourceTest extends JsonapiKernelTestBase {
 
     // Assertions.
     $this->assertInstanceOf(JsonApiDocumentTopLevel::class, $response->getResponseData());
-    $this->assertInstanceOf(EntityCollectionInterface::class, $response->getResponseData()->getData());
+    $this->assertInstanceOf(EntityCollection::class, $response->getResponseData()->getData());
     $this->assertCount(1, $response->getResponseData()->getData());
     $this->assertEquals(['config:node_type_list'], $response->getCacheableMetadata()->getCacheTags());
   }
@@ -290,7 +290,7 @@ class EntityResourceTest extends JsonapiKernelTestBase {
 
     // Assertions.
     $this->assertInstanceOf(JsonApiDocumentTopLevel::class, $response->getResponseData());
-    $this->assertInstanceOf(EntityCollectionInterface::class, $response->getResponseData()->getData());
+    $this->assertInstanceOf(EntityCollection::class, $response->getResponseData()->getData());
     $this->assertCount(2, $response->getResponseData()->getData());
     $this->assertEquals($response->getResponseData()->getData()->toArray()[0]->id(), 'lorem');
     $this->assertEquals(['config:node_type_list'], $response->getCacheableMetadata()->getCacheTags());
@@ -344,7 +344,7 @@ class EntityResourceTest extends JsonapiKernelTestBase {
 
     // Assertions.
     $this->assertInstanceOf(JsonApiDocumentTopLevel::class, $response->getResponseData());
-    $this->assertInstanceOf(EntityCollectionInterface::class, $response->getResponseData()->getData());
+    $this->assertInstanceOf(EntityCollection::class, $response->getResponseData()->getData());
     $data = $response->getResponseData()->getData();
     $this->assertCount(1, $data);
     $this->assertEquals(2, $data->toArray()[0]->id());
@@ -379,7 +379,7 @@ class EntityResourceTest extends JsonapiKernelTestBase {
 
     // Assertions.
     $this->assertInstanceOf(JsonApiDocumentTopLevel::class, $response->getResponseData());
-    $this->assertInstanceOf(EntityCollectionInterface::class, $response->getResponseData()->getData());
+    $this->assertInstanceOf(EntityCollection::class, $response->getResponseData()->getData());
     $this->assertEquals(0, $response->getResponseData()->getData()->count());
     $this->assertEquals(['node_list'], $response->getCacheableMetadata()->getCacheTags());
   }
@@ -400,7 +400,7 @@ class EntityResourceTest extends JsonapiKernelTestBase {
     $response = $entity_resource->getRelated($this->user, 'roles', $this->request->reveal());
     $this->assertInstanceOf(JsonApiDocumentTopLevel::class, $response
       ->getResponseData());
-    $this->assertInstanceOf(EntityCollectionInterface::class, $response
+    $this->assertInstanceOf(EntityCollection::class, $response
       ->getResponseData()
       ->getData());
     $this->assertEquals(['config:user_role_list'], $response
diff --git a/tests/src/Kernel/Normalizer/JsonApiDocumentTopLevelNormalizerTest.php b/tests/src/Kernel/Normalizer/JsonApiDocumentTopLevelNormalizerTest.php
index 626231b..7feb0d0 100644
--- a/tests/src/Kernel/Normalizer/JsonApiDocumentTopLevelNormalizerTest.php
+++ b/tests/src/Kernel/Normalizer/JsonApiDocumentTopLevelNormalizerTest.php
@@ -6,7 +6,7 @@ use Drupal\Component\Serialization\Json;
 use Drupal\Core\Cache\Cache;
 use Drupal\Core\Field\FieldStorageDefinitionInterface;
 use Drupal\jsonapi\ResourceType\ResourceType;
-use Drupal\jsonapi\LinkManager\LinkManagerInterface;
+use Drupal\jsonapi\LinkManager\LinkManager;
 use Drupal\jsonapi\Normalizer\JsonApiDocumentTopLevelNormalizer;
 use Drupal\jsonapi\Resource\JsonApiDocumentTopLevel;
 use Drupal\node\Entity\Node;
@@ -125,7 +125,7 @@ class JsonApiDocumentTopLevelNormalizerTest extends JsonapiKernelTestBase {
 
     $this->node->save();
 
-    $link_manager = $this->prophesize(LinkManagerInterface::class);
+    $link_manager = $this->prophesize(LinkManager::class);
     $link_manager
       ->getEntityLink(Argument::any(), Argument::any(), Argument::type('array'), Argument::type('string'))
       ->willReturn('dummy_entity_link');
diff --git a/tests/src/Unit/Context/FieldResolverTest.php b/tests/src/Unit/Context/FieldResolverTest.php
index 255cc2a..ca4a522 100644
--- a/tests/src/Unit/Context/FieldResolverTest.php
+++ b/tests/src/Unit/Context/FieldResolverTest.php
@@ -7,7 +7,7 @@ use Drupal\Tests\UnitTestCase;
 use Drupal\Core\Entity\EntityFieldManagerInterface;
 use Drupal\Core\Field\FieldStorageDefinitionInterface;
 use Drupal\jsonapi\Context\FieldResolver;
-use Drupal\jsonapi\Context\CurrentContextInterface;
+use Drupal\jsonapi\Context\CurrentContext;
 
 /**
  * Class FieldResolverTest.
@@ -23,7 +23,7 @@ class FieldResolverTest extends UnitTestCase {
   /**
    * A mock for the current context service.
    *
-   * @var \Drupal\jsonapi\Context\CurrentContextInterface
+   * @var \Drupal\jsonapi\Context\CurrentContext
    */
   protected $currentContext;
 
@@ -38,7 +38,7 @@ class FieldResolverTest extends UnitTestCase {
    * {@inheritdoc}
    */
   public function setUp() {
-    $current_context = $this->prophesize(CurrentContextInterface::class);
+    $current_context = $this->prophesize(CurrentContext::class);
 
     $current_context->getResourceType()
       ->willReturn(new ResourceType('lorem', $this->randomMachineName(), NULL));
diff --git a/tests/src/Unit/Controller/RequestHandlerTest.php b/tests/src/Unit/Controller/RequestHandlerTest.php
index f23cf8a..2316de4 100644
--- a/tests/src/Unit/Controller/RequestHandlerTest.php
+++ b/tests/src/Unit/Controller/RequestHandlerTest.php
@@ -4,7 +4,7 @@ namespace Drupal\Tests\jsonapi\Unit\Controller;
 
 use Drupal\Core\Entity\EntityStorageInterface;
 use Drupal\jsonapi\ResourceType\ResourceType;
-use Drupal\jsonapi\Context\CurrentContextInterface;
+use Drupal\jsonapi\Context\CurrentContext;
 use Drupal\jsonapi\Controller\RequestHandler;
 use Drupal\Tests\UnitTestCase;
 use Prophecy\Argument;
@@ -43,7 +43,7 @@ class RequestHandlerTest extends UnitTestCase {
       ->willThrow(new UnexpectedValueException('Foo'));
     $serializer->serialize(Argument::any(), Argument::any(), Argument::any())
       ->willReturn('{"errors":[{"status":422,"message":"Foo"}]}');
-    $current_context = $this->prophesize(CurrentContextInterface::class);
+    $current_context = $this->prophesize(CurrentContext::class);
     $current_context->getResourceType()
       ->willReturn(new ResourceType($this->randomMachineName(), $this->randomMachineName(), NULL));
     try {
diff --git a/tests/src/Unit/Normalizer/ConfigEntityNormalizerTest.php b/tests/src/Unit/Normalizer/ConfigEntityNormalizerTest.php
index cf4f782..08e0f3e 100644
--- a/tests/src/Unit/Normalizer/ConfigEntityNormalizerTest.php
+++ b/tests/src/Unit/Normalizer/ConfigEntityNormalizerTest.php
@@ -7,7 +7,7 @@ use Drupal\Core\Entity\EntityTypeManagerInterface;
 use Drupal\jsonapi\ResourceType\ResourceType;
 use Drupal\jsonapi\ResourceType\ResourceTypeRepository;
 use Drupal\jsonapi\Normalizer\ConfigEntityNormalizer;
-use Drupal\jsonapi\LinkManager\LinkManagerInterface;
+use Drupal\jsonapi\LinkManager\LinkManager;
 use Drupal\jsonapi\Normalizer\ScalarNormalizer;
 use Drupal\Tests\UnitTestCase;
 use Prophecy\Argument;
@@ -35,7 +35,7 @@ class ConfigEntityNormalizerTest extends UnitTestCase {
    * {@inheritdoc}
    */
   public function setUp() {
-    $link_manager = $this->prophesize(LinkManagerInterface::class);
+    $link_manager = $this->prophesize(LinkManager::class);
 
     $resource_type_repository = $this->prophesize(ResourceTypeRepository::class);
     $resource_type_repository->get(Argument::type('string'), Argument::type('string'))
diff --git a/tests/src/Unit/Normalizer/EntityReferenceFieldNormalizerTest.php b/tests/src/Unit/Normalizer/EntityReferenceFieldNormalizerTest.php
index 2363de4..9745cbd 100644
--- a/tests/src/Unit/Normalizer/EntityReferenceFieldNormalizerTest.php
+++ b/tests/src/Unit/Normalizer/EntityReferenceFieldNormalizerTest.php
@@ -13,7 +13,7 @@ use Drupal\field\Entity\FieldConfig;
 use Drupal\jsonapi\ResourceType\ResourceType;
 use Drupal\jsonapi\ResourceType\ResourceTypeRepository;
 use Drupal\jsonapi\Normalizer\EntityReferenceFieldNormalizer;
-use Drupal\jsonapi\LinkManager\LinkManagerInterface;
+use Drupal\jsonapi\LinkManager\LinkManager;
 use Drupal\Tests\UnitTestCase;
 use Prophecy\Argument;
 
@@ -39,7 +39,7 @@ class EntityReferenceFieldNormalizerTest extends UnitTestCase {
    * {@inheritdoc}
    */
   public function setUp() {
-    $link_manager = $this->prophesize(LinkManagerInterface::class);
+    $link_manager = $this->prophesize(LinkManager::class);
     $field_manager = $this->prophesize(EntityFieldManagerInterface::class);
     $field_definition = $this->prophesize(FieldConfig::class);
     $item_definition = $this->prophesize(FieldItemDataDefinition::class);
diff --git a/tests/src/Unit/Normalizer/JsonApiDocumentTopLevelNormalizerTest.php b/tests/src/Unit/Normalizer/JsonApiDocumentTopLevelNormalizerTest.php
index 1311feb..6d7ca9d 100644
--- a/tests/src/Unit/Normalizer/JsonApiDocumentTopLevelNormalizerTest.php
+++ b/tests/src/Unit/Normalizer/JsonApiDocumentTopLevelNormalizerTest.php
@@ -8,8 +8,8 @@ use Drupal\Core\Entity\EntityTypeManagerInterface;
 use Drupal\Core\Entity\FieldableEntityInterface;
 use Drupal\jsonapi\ResourceType\ResourceType;
 use Drupal\jsonapi\Normalizer\JsonApiDocumentTopLevelNormalizer;
-use Drupal\jsonapi\LinkManager\LinkManagerInterface;
-use Drupal\jsonapi\Context\CurrentContextInterface;
+use Drupal\jsonapi\LinkManager\LinkManager;
+use Drupal\jsonapi\Context\CurrentContext;
 use Drupal\Tests\UnitTestCase;
 use Prophecy\Argument;
 use Symfony\Component\Routing\Route;
@@ -33,8 +33,8 @@ class JsonApiDocumentTopLevelNormalizerTest extends UnitTestCase {
    * {@inheritdoc}
    */
   public function setUp() {
-    $link_manager = $this->prophesize(LinkManagerInterface::class);
-    $current_context_manager = $this->prophesize(CurrentContextInterface::class);
+    $link_manager = $this->prophesize(LinkManager::class);
+    $current_context_manager = $this->prophesize(CurrentContext::class);
 
     $entity_storage = $this->prophesize(EntityStorageInterface::class);
     $self = $this;
diff --git a/tests/src/Unit/Normalizer/Value/DocumentRootNormalizerValueTest.php b/tests/src/Unit/Normalizer/Value/DocumentRootNormalizerValueTest.php
index b8a56d6..070b6fb 100644
--- a/tests/src/Unit/Normalizer/Value/DocumentRootNormalizerValueTest.php
+++ b/tests/src/Unit/Normalizer/Value/DocumentRootNormalizerValueTest.php
@@ -5,9 +5,9 @@ namespace Drupal\Tests\jsonapi\Unit\Normalizer\Value;
 use Drupal\Core\Entity\EntityInterface;
 use Drupal\Core\Url;
 use Drupal\jsonapi\ResourceType\ResourceType;
-use Drupal\jsonapi\LinkManager\LinkManagerInterface;
+use Drupal\jsonapi\LinkManager\LinkManager;
 use Drupal\jsonapi\Normalizer\Value\DocumentRootNormalizerValue;
-use Drupal\jsonapi\Normalizer\Value\DocumentRootNormalizerValueInterface;
+use Drupal\jsonapi\Normalizer\Value\DocumentRootNormalizer;
 use Drupal\jsonapi\Normalizer\Value\RelationshipNormalizerValueInterface;
 use Drupal\jsonapi\Normalizer\Value\FieldNormalizerValueInterface;
 use Drupal\node\NodeInterface;
@@ -28,7 +28,7 @@ class DocumentRootNormalizerValueTest extends UnitTestCase {
   /**
    * The DocumentRootNormalizerValue object.
    *
-   * @var DocumentRootNormalizerValueInterface
+   * @var DocumentRootNormalizerValue
    */
   protected $object;
 
@@ -87,7 +87,7 @@ class DocumentRootNormalizerValueTest extends UnitTestCase {
     $url->toString()->willReturn('dummy_entity_link');
     $url->setRouteParameter(Argument::any(), Argument::any())->willReturn($url->reveal());
     $entity->toUrl(Argument::type('string'), Argument::type('array'))->willReturn($url->reveal());
-    $link_manager = $this->prophesize(LinkManagerInterface::class);
+    $link_manager = $this->prophesize(LinkManager::class);
     $link_manager
       ->getEntityLink(Argument::any(), Argument::any(), Argument::type('array'), Argument::type('string'))
       ->willReturn('dummy_entity_link');
@@ -109,7 +109,7 @@ class DocumentRootNormalizerValueTest extends UnitTestCase {
   public function testGetIncludes() {
     $includes = $this->object->getIncludes();
     $includes = array_filter($includes, function ($included) {
-      return $included instanceof DocumentRootNormalizerValueInterface;
+      return $included instanceof DocumentRootNormalizerValue;
     });
     $this->assertCount(2, $includes);
   }
diff --git a/tests/src/Unit/Normalizer/Value/EntityNormalizerValueTest.php b/tests/src/Unit/Normalizer/Value/EntityNormalizerValueTest.php
index 8ddb0df..5ea863e 100644
--- a/tests/src/Unit/Normalizer/Value/EntityNormalizerValueTest.php
+++ b/tests/src/Unit/Normalizer/Value/EntityNormalizerValueTest.php
@@ -4,9 +4,9 @@ namespace Drupal\Tests\jsonapi\Unit\Normalizer\Value;
 
 use Drupal\Core\Entity\EntityInterface;
 use Drupal\jsonapi\ResourceType\ResourceType;
-use Drupal\jsonapi\LinkManager\LinkManagerInterface;
+use Drupal\jsonapi\LinkManager\LinkManager;
 use Drupal\jsonapi\Normalizer\Value\EntityNormalizerValue;
-use Drupal\jsonapi\Normalizer\Value\DocumentRootNormalizerValueInterface;
+use Drupal\jsonapi\Normalizer\Value\DocumentRootNormalizerValue;
 use Drupal\jsonapi\Normalizer\Value\RelationshipNormalizerValueInterface;
 use Drupal\jsonapi\Normalizer\Value\FieldNormalizerValueInterface;
 use Drupal\node\NodeInterface;
@@ -27,7 +27,7 @@ class EntityNormalizerValueTest extends UnitTestCase {
   /**
    * The EntityNormalizerValue object.
    *
-   * @var \Drupal\jsonapi\Normalizer\Value\EntityNormalizerValueInterface
+   * @var \Drupal\jsonapi\Normalizer\Value\EntityNormalizerValue
    */
   protected $object;
 
@@ -43,7 +43,7 @@ class EntityNormalizerValueTest extends UnitTestCase {
     $field2 = $this->prophesize(RelationshipNormalizerValueInterface::class);
     $field2->getPropertyType()->willReturn('relationships');
     $field2->rasterizeValue()->willReturn(['data' => ['type' => 'node', 'id' => 2]]);
-    $included[] = $this->prophesize(DocumentRootNormalizerValueInterface::class);
+    $included[] = $this->prophesize(DocumentRootNormalizerValue::class);
     $included[0]->getIncludes()->willReturn([]);
     $included[0]->rasterizeValue()->willReturn([
       'data' => [
@@ -54,7 +54,7 @@ class EntityNormalizerValueTest extends UnitTestCase {
     ]);
     $included[0]->getCacheContexts()->willReturn(['lorem', 'ipsum']);
     // Type & id duplicated on purpose.
-    $included[] = $this->prophesize(DocumentRootNormalizerValueInterface::class);
+    $included[] = $this->prophesize(DocumentRootNormalizerValue::class);
     $included[1]->getIncludes()->willReturn([]);
     $included[1]->rasterizeValue()->willReturn([
       'data' => [
@@ -63,7 +63,7 @@ class EntityNormalizerValueTest extends UnitTestCase {
         'attributes' => ['body' => 'dummy_body2'],
       ],
     ]);
-    $included[] = $this->prophesize(DocumentRootNormalizerValueInterface::class);
+    $included[] = $this->prophesize(DocumentRootNormalizerValue::class);
     $included[2]->getIncludes()->willReturn([]);
     $included[2]->rasterizeValue()->willReturn([
       'data' => [
@@ -81,7 +81,7 @@ class EntityNormalizerValueTest extends UnitTestCase {
     $entity->isNew()->willReturn(FALSE);
     $entity->getEntityTypeId()->willReturn('node');
     $entity->bundle()->willReturn('article');
-    $link_manager = $this->prophesize(LinkManagerInterface::class);
+    $link_manager = $this->prophesize(LinkManager::class);
     $link_manager
       ->getEntityLink(Argument::any(), Argument::any(), Argument::type('array'), Argument::type('string'))
       ->willReturn('dummy_entity_link');
@@ -154,7 +154,7 @@ class EntityNormalizerValueTest extends UnitTestCase {
   public function testGetIncludes() {
     $includes = $this->object->getIncludes();
     $includes = array_filter($includes, function ($included) {
-      return $included instanceof DocumentRootNormalizerValueInterface;
+      return $included instanceof DocumentRootNormalizerValue;
     });
     $this->assertCount(3, $includes);
   }
diff --git a/tests/src/Unit/Normalizer/Value/FieldNormalizerValueTest.php b/tests/src/Unit/Normalizer/Value/FieldNormalizerValueTest.php
index 1d3aefd..fcc7674 100644
--- a/tests/src/Unit/Normalizer/Value/FieldNormalizerValueTest.php
+++ b/tests/src/Unit/Normalizer/Value/FieldNormalizerValueTest.php
@@ -43,7 +43,7 @@ class FieldNormalizerValueTest extends UnitTestCase {
    */
   public function testRasterizeIncludes() {
     $value = $this->prophesize('\Drupal\jsonapi\Normalizer\Value\FieldItemNormalizerValueInterface');
-    $include = $this->prophesize('\Drupal\jsonapi\Normalizer\Value\EntityNormalizerValueInterface');
+    $include = $this->prophesize('\Drupal\jsonapi\Normalizer\Value\EntityNormalizerValue');
     $include->rasterizeValue()->willReturn('Lorem');
     $value->getInclude()->willReturn($include->reveal());
     $object = new FieldNormalizerValue([$value->reveal()], 1);
diff --git a/tests/src/Unit/Normalizer/Value/RelationshipNormalizerValueTest.php b/tests/src/Unit/Normalizer/Value/RelationshipNormalizerValueTest.php
index cd59a64..7443c7c 100644
--- a/tests/src/Unit/Normalizer/Value/RelationshipNormalizerValueTest.php
+++ b/tests/src/Unit/Normalizer/Value/RelationshipNormalizerValueTest.php
@@ -3,7 +3,7 @@
 namespace Drupal\Tests\jsonapi\Unit\Normalizer\Value;
 
 use Drupal\jsonapi\ResourceType\ResourceType;
-use Drupal\jsonapi\LinkManager\LinkManagerInterface;
+use Drupal\jsonapi\LinkManager\LinkManager;
 use Drupal\jsonapi\Normalizer\Value\RelationshipItemNormalizerValue;
 use Drupal\jsonapi\Normalizer\Value\RelationshipNormalizerValue;
 use Drupal\jsonapi\Normalizer\Value\FieldItemNormalizerValue;
@@ -25,7 +25,7 @@ class RelationshipNormalizerValueTest extends UnitTestCase {
    * @dataProvider rasterizeValueProvider
    */
   public function testRasterizeValue($values, $cardinality, $expected) {
-    $link_manager = $this->prophesize(LinkManagerInterface::class);
+    $link_manager = $this->prophesize(LinkManager::class);
     $link_manager
       ->getEntityLink(Argument::any(), Argument::any(), Argument::type('array'), Argument::type('string'))
       ->willReturn('dummy_entity_link');
@@ -79,7 +79,7 @@ class RelationshipNormalizerValueTest extends UnitTestCase {
     $uid1 = $this->prophesize(FieldItemNormalizerValue::class);
     $uid1->rasterizeValue()->willReturn(1);
     $uid1->getInclude()->willReturn(NULL);
-    $link_manager = $this->prophesize(LinkManagerInterface::class);
+    $link_manager = $this->prophesize(LinkManager::class);
     $link_manager
       ->getEntityLink(Argument::any(), Argument::any(), Argument::type('array'), Argument::type('string'))
       ->willReturn('dummy_entity_link');
