diff --git a/program/serializers.py b/program/serializers.py
index 5c88234560998503cb7989ca03ee638a999d67f4..63cfa45aab8ed445c79b706b5a840f5493b13bcf 100644
--- a/program/serializers.py
+++ b/program/serializers.py
@@ -167,9 +167,10 @@ class LinkSerializer(serializers.ModelSerializer):
         fields = ("description", "url")
 
 
-class HostLinkSerializer(LinkSerializer):
+class HostLinkSerializer(serializers.ModelSerializer):
     class Meta:
         model = HostLink
+        fields = ("description", "url")
 
 
 class HostSerializer(serializers.ModelSerializer):
@@ -194,6 +195,8 @@ class HostSerializer(serializers.ModelSerializer):
             "email",
             "biography",
             "is_active",
+            "links",
+            "thumbnails",
             # ModelWithImageFields
             "image",
             "image_ppoi",
@@ -207,11 +210,16 @@ class HostSerializer(serializers.ModelSerializer):
             "updated_at",
             "updated_by",
         )
+        read_only_fields = (
+            "created_at",
+            "created_by",
+            "updated_at",
+            "updated_by",
+        )
 
     def create(self, validated_data):
         links_data = validated_data.pop("links", [])
-        host = Host.objects.create(**validated_data)
-
+        host = Host.objects.create(**validated_data | self.context)
         for link_data in links_data:
             HostLink.objects.create(host=host, **link_data)
         host.save()
@@ -234,6 +242,7 @@ class HostSerializer(serializers.ModelSerializer):
         instance.image_alt_text = validated_data.get(
             "image_alt_text", instance.image_alt_text
         )
+        instance.updated_by = self.context.get("updated_by")
 
         if instance.links.count() > 0:
             for link in instance.links.all():