diff --git a/src/Context/CurrentContext.php b/src/Context/CurrentContext.php
index 48e2c7e..3c9bc4e 100644
--- a/src/Context/CurrentContext.php
+++ b/src/Context/CurrentContext.php
@@ -14,6 +14,8 @@ use Symfony\Component\Routing\Route;
  * Service for accessing information about the current JSON API request.
  *
  * @package \Drupal\jsonapi\Context
+ *
+ * @internal
  */
 class CurrentContext implements CurrentContextInterface {
 
diff --git a/src/Context/CurrentContextInterface.php b/src/Context/CurrentContextInterface.php
index fda80a1..ecc3673 100644
--- a/src/Context/CurrentContextInterface.php
+++ b/src/Context/CurrentContextInterface.php
@@ -2,8 +2,6 @@
 
 namespace Drupal\jsonapi\Context;
 
-use Drupal\jsonapi\Configuration\ResourceConfigInterface;
-use Symfony\Component\HttpFoundation\RequestStack;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\Routing\Route;
 
@@ -13,6 +11,8 @@ use Symfony\Component\Routing\Route;
  * An interface for accessing contextual information for the current request.
  *
  * @package \Drupal\jsonapi\Context
+ *
+ * @internal
  */
 interface CurrentContextInterface {
 
diff --git a/src/Context/FieldResolver.php b/src/Context/FieldResolver.php
index e9e17d6..95b3491 100644
--- a/src/Context/FieldResolver.php
+++ b/src/Context/FieldResolver.php
@@ -9,6 +9,8 @@ use Drupal\jsonapi\Error\SerializableHttpException;
  * Contains FieldResolver.
  *
  * Service which resolves public field names to and from Drupal field names.
+ *
+ * @internal
  */
 class FieldResolver implements FieldResolverInterface {
 
diff --git a/src/Context/FieldResolverInterface.php b/src/Context/FieldResolverInterface.php
index 92dfcf2..4d3622b 100644
--- a/src/Context/FieldResolverInterface.php
+++ b/src/Context/FieldResolverInterface.php
@@ -6,6 +6,8 @@ namespace Drupal\jsonapi\Context;
  * Contains FieldResolverInterface.
  *
  * Interface for mapping public field names to Drupal field names.
+ *
+ * @internal
  */
 interface FieldResolverInterface {
 
diff --git a/src/Normalizer/ConfigEntityNormalizer.php b/src/Normalizer/ConfigEntityNormalizer.php
index 5e1294a..153ef98 100644
--- a/src/Normalizer/ConfigEntityNormalizer.php
+++ b/src/Normalizer/ConfigEntityNormalizer.php
@@ -3,7 +3,6 @@
 namespace Drupal\jsonapi\Normalizer;
 
 use Drupal\Core\Config\Entity\ConfigEntityInterface;
-use Drupal\jsonapi\RelationshipInterface;
 
 /**
  * Class ConfigEntityNormalizer.
diff --git a/src/Normalizer/DocumentRootNormalizer.php b/src/Normalizer/DocumentRootNormalizer.php
index 11f6603..56ddc23 100644
--- a/src/Normalizer/DocumentRootNormalizer.php
+++ b/src/Normalizer/DocumentRootNormalizer.php
@@ -4,7 +4,7 @@ namespace Drupal\jsonapi\Normalizer;
 
 use Drupal\Core\Field\EntityReferenceFieldItemListInterface;
 use Drupal\jsonapi\Context\CurrentContextInterface;
-use Drupal\jsonapi\EntityCollectionInterface;
+use Drupal\jsonapi\Resource\EntityCollectionInterface;
 use Drupal\jsonapi\Resource\DocumentWrapperInterface;
 use Drupal\jsonapi\LinkManager\LinkManagerInterface;
 use Symfony\Component\HttpFoundation\Request;
diff --git a/src/Normalizer/EntityNormalizer.php b/src/Normalizer/EntityNormalizer.php
index eefd8f7..d442f93 100644
--- a/src/Normalizer/EntityNormalizer.php
+++ b/src/Normalizer/EntityNormalizer.php
@@ -11,7 +11,6 @@ use Drupal\jsonapi\Context\CurrentContextInterface;
 use Drupal\jsonapi\Error\SerializableHttpException;
 use Drupal\jsonapi\LinkManager\LinkManagerInterface;
 use Drupal\jsonapi\Normalizer\Value\NullFieldNormalizerValue;
-use Drupal\jsonapi\RelationshipInterface;
 use Symfony\Component\Serializer\Normalizer\DenormalizerInterface;
 
 /**
diff --git a/src/Normalizer/EntityReferenceFieldNormalizer.php b/src/Normalizer/EntityReferenceFieldNormalizer.php
index 855ac04..a30407d 100644
--- a/src/Normalizer/EntityReferenceFieldNormalizer.php
+++ b/src/Normalizer/EntityReferenceFieldNormalizer.php
@@ -7,11 +7,10 @@ use Drupal\Core\Field\EntityReferenceFieldItemListInterface;
 use Drupal\Core\Field\FieldTypePluginManagerInterface;
 use Drupal\Core\Field\TypedData\FieldItemDataDefinition;
 use Drupal\jsonapi\Configuration\ResourceManagerInterface;
-use Drupal\jsonapi\EntityCollection;
+use Drupal\jsonapi\Resource\EntityCollection;
 use Drupal\jsonapi\Error\SerializableHttpException;
 use Drupal\jsonapi\LinkManager\LinkManagerInterface;
 use Drupal\jsonapi\Relationship;
-use Symfony\Component\HttpKernel\Exception\BadRequestHttpException;
 use Symfony\Component\Serializer\Normalizer\DenormalizerInterface;
 
 /**
diff --git a/src/RelationshipInterface.php b/src/Normalizer/RelationshipInterface.php
similarity index 95%
rename from src/RelationshipInterface.php
rename to src/Normalizer/RelationshipInterface.php
index a26ae12..d7135d3 100644
--- a/src/RelationshipInterface.php
+++ b/src/Normalizer/RelationshipInterface.php
@@ -1,6 +1,6 @@
 <?php
 
-namespace Drupal\jsonapi;
+namespace Drupal\jsonapi\Normalizer;
 
 use Drupal\Core\Entity\EntityInterface;
 
diff --git a/src/RelationshipItem.php b/src/Normalizer/RelationshipItem.php
similarity index 98%
rename from src/RelationshipItem.php
rename to src/Normalizer/RelationshipItem.php
index a303205..7d61bf9 100644
--- a/src/RelationshipItem.php
+++ b/src/Normalizer/RelationshipItem.php
@@ -1,6 +1,6 @@
 <?php
 
-namespace Drupal\jsonapi;
+namespace Drupal\jsonapi\Normalizer;
 
 use Drupal\Core\Entity\EntityInterface;
 use Drupal\jsonapi\Configuration\ResourceManagerInterface;
diff --git a/src/RelationshipItemInterface.php b/src/Normalizer/RelationshipItemInterface.php
similarity index 95%
rename from src/RelationshipItemInterface.php
rename to src/Normalizer/RelationshipItemInterface.php
index 2f87206..97a5b93 100644
--- a/src/RelationshipItemInterface.php
+++ b/src/Normalizer/RelationshipItemInterface.php
@@ -1,6 +1,6 @@
 <?php
 
-namespace Drupal\jsonapi;
+namespace Drupal\jsonapi\Normalizer;
 
 interface RelationshipItemInterface {
 
diff --git a/src/Normalizer/RelationshipItemNormalizer.php b/src/Normalizer/RelationshipItemNormalizer.php
index d1e32b1..1687b4a 100644
--- a/src/Normalizer/RelationshipItemNormalizer.php
+++ b/src/Normalizer/RelationshipItemNormalizer.php
@@ -6,7 +6,6 @@ use Drupal\Core\Cache\RefinableCacheableDependencyInterface;
 use Drupal\Core\Cache\RefinableCacheableDependencyTrait;
 use Drupal\Core\Entity\EntityInterface;
 use Drupal\jsonapi\Configuration\ResourceManagerInterface;
-use Drupal\jsonapi\RelationshipItemInterface;
 use Drupal\serialization\EntityResolver\UuidReferenceInterface;
 
 /**
diff --git a/src/Query/ConditionOption.php b/src/Query/ConditionOption.php
index 8f25100..aa511e2 100644
--- a/src/Query/ConditionOption.php
+++ b/src/Query/ConditionOption.php
@@ -8,6 +8,8 @@ namespace Drupal\jsonapi\Query;
  * A ConditionOption represents an option which can be applied to a query.
  *
  * @package \Drupal\jsonapi\Query\ConditionOption
+ *
+ * @internal
  */
 class ConditionOption implements QueryOptionInterface {
 
diff --git a/src/Query/GroupOption.php b/src/Query/GroupOption.php
index 23f47a7..b88bcfe 100644
--- a/src/Query/GroupOption.php
+++ b/src/Query/GroupOption.php
@@ -8,6 +8,8 @@ namespace Drupal\jsonapi\Query;
  * A GroupOption can group other options before applying them to a query.
  *
  * @package \Drupal\jsonapi\Query\GroupOption
+ *
+ * @internal
  */
 class GroupOption implements QueryOptionInterface, QueryOptionTreeItemInterface {
 
diff --git a/src/Query/OffsetPagerOption.php b/src/Query/OffsetPagerOption.php
index d3db2cf..305f6b9 100644
--- a/src/Query/OffsetPagerOption.php
+++ b/src/Query/OffsetPagerOption.php
@@ -7,6 +7,8 @@ namespace Drupal\jsonapi\Query;
  * Class PagerOption.
  *
  * @package Drupal\jsonapi\Query
+ *
+ * @internal
  */
 class OffsetPagerOption implements QueryOptionInterface {
 
diff --git a/src/Query/QueryBuilder.php b/src/Query/QueryBuilder.php
index f9e90de..d9048b4 100644
--- a/src/Query/QueryBuilder.php
+++ b/src/Query/QueryBuilder.php
@@ -16,6 +16,8 @@ use Drupal\jsonapi\Routing\Param\Sort;
  * Class QueryBuilder.
  *
  * @package Drupal\jsonapi\Query
+ *
+ * @internal
  */
 class QueryBuilder implements QueryBuilderInterface {
 
diff --git a/src/Query/QueryBuilderInterface.php b/src/Query/QueryBuilderInterface.php
index 9e788cd..3d36a98 100644
--- a/src/Query/QueryBuilderInterface.php
+++ b/src/Query/QueryBuilderInterface.php
@@ -8,6 +8,8 @@ use Drupal\Core\Entity\EntityTypeInterface;
  * Interface QueryBuilderInterface.
  *
  * @package Drupal\jsonapi\Query
+ *
+ * @internal
  */
 interface QueryBuilderInterface {
 
diff --git a/src/Query/QueryOptionInterface.php b/src/Query/QueryOptionInterface.php
index c0af8e1..735b599 100644
--- a/src/Query/QueryOptionInterface.php
+++ b/src/Query/QueryOptionInterface.php
@@ -6,6 +6,8 @@ namespace Drupal\jsonapi\Query;
  * Interface QueryOptionInterface.
  *
  * @package Drupal\jsonapi\Query
+ *
+ * @internal
  */
 interface QueryOptionInterface {
 
diff --git a/src/Query/QueryOptionTreeItemInterface.php b/src/Query/QueryOptionTreeItemInterface.php
index e54a257..91b7cf0 100644
--- a/src/Query/QueryOptionTreeItemInterface.php
+++ b/src/Query/QueryOptionTreeItemInterface.php
@@ -2,6 +2,11 @@
 
 namespace Drupal\jsonapi\Query;
 
+/**
+ * Interface QueryOptionTreeItemInterface
+ *
+ * @internal
+ */
 interface QueryOptionTreeItemInterface {
 
   /**
diff --git a/src/Query/SortOption.php b/src/Query/SortOption.php
index cc11d72..10d363f 100644
--- a/src/Query/SortOption.php
+++ b/src/Query/SortOption.php
@@ -6,6 +6,8 @@ namespace Drupal\jsonapi\Query;
  * Class SortOption.
  *
  * @package \Drupal\jsonapi\Query
+ *
+ * @internal
  */
 class SortOption implements QueryOptionInterface {
 
diff --git a/src/EntityCollection.php b/src/Resource/EntityCollection.php
similarity index 97%
rename from src/EntityCollection.php
rename to src/Resource/EntityCollection.php
index 88223fa..297d56b 100644
--- a/src/EntityCollection.php
+++ b/src/Resource/EntityCollection.php
@@ -1,6 +1,6 @@
 <?php
 
-namespace Drupal\jsonapi;
+namespace Drupal\jsonapi\Resource;
 
 /**
  * Class EntityCollection.
diff --git a/src/EntityCollectionInterface.php b/src/Resource/EntityCollectionInterface.php
similarity index 95%
rename from src/EntityCollectionInterface.php
rename to src/Resource/EntityCollectionInterface.php
index 2069cc7..37846f0 100644
--- a/src/EntityCollectionInterface.php
+++ b/src/Resource/EntityCollectionInterface.php
@@ -1,7 +1,7 @@
 <?php
 
 
-namespace Drupal\jsonapi;
+namespace Drupal\jsonapi\Resource;
 
 /**
  * Class EntityCollectionInterface.
diff --git a/src/Resource/EntityResource.php b/src/Resource/EntityResource.php
index 6067824..b1ac51b 100644
--- a/src/Resource/EntityResource.php
+++ b/src/Resource/EntityResource.php
@@ -15,8 +15,6 @@ use Drupal\Core\Field\EntityReferenceFieldItemListInterface;
 use Drupal\Core\Field\FieldTypePluginManagerInterface;
 use Drupal\Core\Field\Plugin\Field\FieldType\EntityReferenceItem;
 use Drupal\jsonapi\Configuration\ResourceConfigInterface;
-use Drupal\jsonapi\EntityCollection;
-use Drupal\jsonapi\EntityCollectionInterface;
 use Drupal\jsonapi\Error\SerializableHttpException;
 use Drupal\jsonapi\Query\QueryBuilderInterface;
 use Drupal\jsonapi\Context\CurrentContextInterface;
diff --git a/src/Routing/JsonApiParamEnhancer.php b/src/Routing/JsonApiParamEnhancer.php
index cde5df0..3db6fb7 100644
--- a/src/Routing/JsonApiParamEnhancer.php
+++ b/src/Routing/JsonApiParamEnhancer.php
@@ -15,6 +15,8 @@ use Symfony\Component\Routing\Route;
  * Class JsonApiParamEnhancer.
  *
  * @package Drupal\jsonapi\Routing
+ *
+ * @internal
  */
 class JsonApiParamEnhancer implements RouteEnhancerInterface {
 
diff --git a/src/Routing/Param/Filter.php b/src/Routing/Param/Filter.php
index a4ca9e1..fc08cff 100644
--- a/src/Routing/Param/Filter.php
+++ b/src/Routing/Param/Filter.php
@@ -7,6 +7,8 @@ use Drupal\jsonapi\Error\SerializableHttpException;
  * Class Filter.
  *
  * @package Drupal\jsonapi\Routing\Param
+ *
+ * @internal
  */
 class Filter extends JsonApiParamBase {
 
diff --git a/src/Routing/Param/JsonApiParamBase.php b/src/Routing/Param/JsonApiParamBase.php
index 9e5939d..8830a47 100644
--- a/src/Routing/Param/JsonApiParamBase.php
+++ b/src/Routing/Param/JsonApiParamBase.php
@@ -6,6 +6,8 @@ namespace Drupal\jsonapi\Routing\Param;
  * Class JsonApiParamBase.
  *
  * @package Drupal\jsonapi\Routing\Param
+ *
+ * @internal
  */
 class JsonApiParamBase implements JsonApiParamInterface {
 
diff --git a/src/Routing/Param/JsonApiParamInterface.php b/src/Routing/Param/JsonApiParamInterface.php
index 54d1d72..75380d5 100644
--- a/src/Routing/Param/JsonApiParamInterface.php
+++ b/src/Routing/Param/JsonApiParamInterface.php
@@ -7,6 +7,8 @@ namespace Drupal\jsonapi\Routing\Param;
  * Class JsonApiParamInterface.
  *
  * @package Drupal\jsonapi\Routing\Param
+ *
+ * @internal
  */
 interface JsonApiParamInterface {
 
diff --git a/src/Routing/Param/OffsetPage.php b/src/Routing/Param/OffsetPage.php
index a9a04f7..def734e 100644
--- a/src/Routing/Param/OffsetPage.php
+++ b/src/Routing/Param/OffsetPage.php
@@ -7,6 +7,8 @@ use Drupal\jsonapi\Error\SerializableHttpException;
  * Class Page.
  *
  * @package Drupal\jsonapi\Routing\Param
+ *
+ * @internal
  */
 class OffsetPage extends JsonApiParamBase {
 
diff --git a/src/Routing/Param/Sort.php b/src/Routing/Param/Sort.php
index 8f3624a..a1896bd 100644
--- a/src/Routing/Param/Sort.php
+++ b/src/Routing/Param/Sort.php
@@ -7,6 +7,8 @@ use Drupal\jsonapi\Error\SerializableHttpException;
  * Class Sort.
  *
  * @package Drupal\jsonapi\Routing\Param
+ *
+ * @internal
  */
 class Sort extends JsonApiParamBase {
 
diff --git a/src/Routing/RouteEnhancer.php b/src/Routing/RouteEnhancer.php
index ca6b5c5..85e3b08 100644
--- a/src/Routing/RouteEnhancer.php
+++ b/src/Routing/RouteEnhancer.php
@@ -12,6 +12,8 @@ use Symfony\Component\Routing\Route;
  * Class RouteEnhancer.
  *
  * @package Drupal\jsonapi\Routing
+ *
+ * @internal
  */
 class RouteEnhancer implements RouteEnhancerInterface {
 
diff --git a/src/Routing/Routes.php b/src/Routing/Routes.php
index 2cd1413..8d8fb51 100644
--- a/src/Routing/Routes.php
+++ b/src/Routing/Routes.php
@@ -14,6 +14,8 @@ use Symfony\Component\Routing\RouteCollection;
 
 /**
  * Defines dynamic routes.
+ *
+ * @internal
  */
 class Routes implements ContainerInjectionInterface {
 
diff --git a/tests/src/Kernel/Resource/EntityResourceTest.php b/tests/src/Kernel/Resource/EntityResourceTest.php
index 08070fa..5089374 100644
--- a/tests/src/Kernel/Resource/EntityResourceTest.php
+++ b/tests/src/Kernel/Resource/EntityResourceTest.php
@@ -6,7 +6,7 @@ use Drupal\Component\Serialization\Json;
 use Drupal\Core\Field\EntityReferenceFieldItemListInterface;
 use Drupal\Core\Field\FieldStorageDefinitionInterface;
 use Drupal\jsonapi\Configuration\ResourceConfigInterface;
-use Drupal\jsonapi\EntityCollectionInterface;
+use Drupal\jsonapi\Resource\EntityCollectionInterface;
 use Drupal\jsonapi\Resource\DocumentWrapper;
 use Drupal\jsonapi\Resource\EntityResource;
 use Drupal\jsonapi\Routing\Param\Filter;
