diff --git a/djangoldp/serializers.py b/djangoldp/serializers.py
index 68e4d6c7cd549a67d759da2c92556232659fe54e..09f98d4b7ea1eedae65319dc882cb40f459e6a8b 100644
--- a/djangoldp/serializers.py
+++ b/djangoldp/serializers.py
@@ -10,10 +10,18 @@ from guardian.shortcuts import get_perms
 
 class ContainerSerializer(ListSerializer):
     id=''
-    def to_representation(self, data):
-        return {'@id': self.id, 'ldp:contains':super(ContainerSerializer, self).to_representation(data)}
+    def to_internal_value(self, data):
+        data = json.loads(data)
+        if isinstance(data, dict):
+            data = [data]
+        return [self.child_relation.to_internal_value(item['@id']) for item in data]
+    def to_representation(self, value):
+        return {'@id': self.id, 'ldp:contains': super().to_representation(value)}
     def get_attribute(self, instance):
-        self.id = self.parent.context['request'].get_full_path()+self.field_name+"/"
+        parent_id_field = self.parent.fields[self.parent.url_field_name]
+        context = self.parent.context
+        parent_id = parent_id_field.get_url(instance, parent_id_field.view_name, context['request'], context['format'])
+        self.id = parent_id + self.field_name+"/"
         return super().get_attribute(instance)
     @property
     def data(self):
@@ -32,18 +40,6 @@ class JsonLdField(HyperlinkedRelatedField):
         except MultiValueDictKeyError:
             pass
 
-class ManyJsonLdRelatedField(ManyRelatedField):
-    def to_internal_value(self, data):
-        data = json.loads(data)
-        if isinstance(data, dict):
-            data = [data]
-        return [self.child_relation.to_internal_value(item['@id']) for item in data]
-    def to_representation(self, value):
-        return {'@id': self.id, 'ldp:contains': super().to_representation(value)}
-    def get_attribute(self, instance):
-        self.id = self.parent.context['request'].get_full_path()+self.field_name+"/"
-        return super().get_attribute(instance)
-
 class JsonLdRelatedField(JsonLdField):
     def to_representation(self, value):
         try:
@@ -63,7 +59,7 @@ class JsonLdRelatedField(JsonLdField):
         for key in kwargs:
             if key in MANY_RELATION_KWARGS:
                 list_kwargs[key] = kwargs[key]
-        return ManyJsonLdRelatedField(**list_kwargs)
+        return ContainerSerializer(**list_kwargs)
 
 class JsonLdIdentityField(JsonLdField):
     def __init__(self, view_name=None, **kwargs):
@@ -90,13 +86,13 @@ class LDPSerializer(HyperlinkedModelSerializer):
         return data
     
     def build_nested_field(self, field_name, relation_info, nested_depth):
-        class NestedSerializer(self.__class__):
+        class NestedLDPSerializer(self.__class__):
             class Meta:
                 model = relation_info.related_model
                 depth = nested_depth - 1
                 fields = '__all__'
         
-        return NestedSerializer, get_nested_relation_kwargs(relation_info)
+        return NestedLDPSerializer, get_nested_relation_kwargs(relation_info)
     
     @classmethod
     def many_init(cls, *args, **kwargs):
diff --git a/setup.py b/setup.py
index 15a133988f5d39d9eb3334e2727162ccd56e5529..60474fdc48dad32c5ff514f1647fee5936ea195d 100644
--- a/setup.py
+++ b/setup.py
@@ -2,7 +2,7 @@ from setuptools import setup
 
 setup(
     name='djangoldp',
-    version='0.5a2',
+    version='0.5a4',
     url='https://git.happy-dev.fr/happy-dev/djangoldp/',
     author="Startin'blox",
     author_email='sylvain@happy-dev.fr',