 src/Context/CurrentContext.php                     | 35 ++++++++++--
 src/Context/CurrentContextInterface.php            | 64 ----------------------
 src/Context/FieldResolver.php                      | 30 ++++++++--
 src/Context/FieldResolverInterface.php             | 42 --------------
 src/Controller/EntityResource.php                  | 14 ++---
 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          | 14 ++---
 src/Normalizer/RelationshipNormalizer.php          |  8 +--
 .../Value/DocumentRootNormalizerValue.php          |  2 +-
 src/Normalizer/Value/EntityNormalizerValue.php     |  2 +-
 .../Value/RelationshipNormalizerValue.php          |  2 +-
 src/Query/QueryBuilder.php                         | 26 ++++++---
 src/Query/QueryBuilderInterface.php                | 29 ----------
 .../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      |  4 +-
 .../Normalizer/Value/EntityNormalizerValueTest.php |  4 +-
 .../Value/RelationshipNormalizerValueTest.php      |  6 +-
 29 files changed, 198 insertions(+), 343 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..60e8473 100644
--- a/src/Controller/EntityResource.php
+++ b/src/Controller/EntityResource.php
@@ -20,8 +20,8 @@ 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 +59,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 +84,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;
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..619dd30 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\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;
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..1322c77 100644
--- a/src/Normalizer/Value/DocumentRootNormalizerValue.php
+++ b/src/Normalizer/Value/DocumentRootNormalizerValue.php
@@ -46,7 +46,7 @@ class DocumentRootNormalizerValue implements DocumentRootNormalizerValueInterfac
   /**
    * The link manager.
    *
-   * @var \Drupal\jsonapi\LinkManager\LinkManagerInterface
+   * @var \Drupal\jsonapi\LinkManager\LinkManager
    */
   protected $linkManager;
 
diff --git a/src/Normalizer/Value/EntityNormalizerValue.php b/src/Normalizer/Value/EntityNormalizerValue.php
index 13ec15f..26012c1 100644
--- a/src/Normalizer/Value/EntityNormalizerValue.php
+++ b/src/Normalizer/Value/EntityNormalizerValue.php
@@ -45,7 +45,7 @@ class EntityNormalizerValue implements EntityNormalizerValueInterface {
   /**
    * The link manager.
    *
-   * @param \Drupal\jsonapi\LinkManager\LinkManagerInterface
+   * @param \Drupal\jsonapi\LinkManager\LinkManager
    */
   protected $linkManager;
 
diff --git a/src/Normalizer/Value/RelationshipNormalizerValue.php b/src/Normalizer/Value/RelationshipNormalizerValue.php
index 45af3fb..12fc8b8 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;
 
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/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..e31110a 100644
--- a/tests/src/Unit/Normalizer/Value/DocumentRootNormalizerValueTest.php
+++ b/tests/src/Unit/Normalizer/Value/DocumentRootNormalizerValueTest.php
@@ -5,7 +5,7 @@ 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\RelationshipNormalizerValueInterface;
@@ -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');
diff --git a/tests/src/Unit/Normalizer/Value/EntityNormalizerValueTest.php b/tests/src/Unit/Normalizer/Value/EntityNormalizerValueTest.php
index 8ddb0df..465b9a4 100644
--- a/tests/src/Unit/Normalizer/Value/EntityNormalizerValueTest.php
+++ b/tests/src/Unit/Normalizer/Value/EntityNormalizerValueTest.php
@@ -4,7 +4,7 @@ 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\RelationshipNormalizerValueInterface;
@@ -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');
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');
