diff --git a/goofy-server/src/main/java/de/itvsh/goofy/common/user/UserProfileModelAssembler.java b/goofy-server/src/main/java/de/itvsh/goofy/common/user/UserProfileModelAssembler.java
index ab55f0bb912f45cc4f8172290d0a1e461b34a31f..df5ab9f7dacb6e4f449f3bdd9ebae957d81a51f1 100644
--- a/goofy-server/src/main/java/de/itvsh/goofy/common/user/UserProfileModelAssembler.java
+++ b/goofy-server/src/main/java/de/itvsh/goofy/common/user/UserProfileModelAssembler.java
@@ -1,5 +1,8 @@
 package de.itvsh.goofy.common.user;
 
+import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.*;
+
+import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
 import org.springframework.hateoas.CollectionModel;
@@ -12,13 +15,13 @@ class UserProfileModelAssembler implements RepresentationModelAssembler<UserProf
 
 	@Override
 	public EntityModel<UserProfile> toModel(UserProfile entity) {
-		// TODO Auto-generated method stub
-		return null;
+		return EntityModel.of(entity)
+				.add(linkTo(UserProfileController.class).slash(entity.getId()).withSelfRel());
 	}
 
-	public CollectionModel<EntityModel<UserProfile>> toCollectionModel(Stream<UserProfile> userProfile) {
-		// FIXME
-		return null;
+	public CollectionModel<EntityModel<UserProfile>> toCollectionModel(Stream<UserProfile> userProfiles) {
+		return CollectionModel.of(userProfiles.map(this::toModel).collect(Collectors.toList()))
+				.add(linkTo(UserProfileController.class).withSelfRel());
 	}
 
 }
diff --git a/goofy-server/src/test/java/de/itvsh/goofy/common/user/UserProfileModelAssemblerTest.java b/goofy-server/src/test/java/de/itvsh/goofy/common/user/UserProfileModelAssemblerTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..1569eba1310056eb0c597117a2938b10dc2b2659
--- /dev/null
+++ b/goofy-server/src/test/java/de/itvsh/goofy/common/user/UserProfileModelAssemblerTest.java
@@ -0,0 +1,43 @@
+package de.itvsh.goofy.common.user;
+
+import static org.assertj.core.api.Assertions.*;
+
+import java.util.stream.Stream;
+
+import org.junit.jupiter.api.Nested;
+import org.junit.jupiter.api.Test;
+import org.mockito.InjectMocks;
+import org.springframework.hateoas.IanaLinkRelations;
+import org.springframework.hateoas.Link;
+
+class UserProfileModelAssemblerTest {
+
+	@InjectMocks
+	private UserProfileModelAssembler modelAssembler;
+
+	@Nested
+	class ToModelTest {
+
+		@Test
+		void shouldHaveSelfLink() {
+			var model = modelAssembler.toModel(UserProfileTestFactory.create());
+
+			assertThat(model.getLink(IanaLinkRelations.SELF)).isPresent().get().extracting(Link::getHref)
+					.isEqualTo(UserProfileController.BASE_PATH + "/" + UserProfileTestFactory.ID);
+		}
+	}
+
+	@Nested
+	class ToCollectionModelTest {
+
+		private Stream<UserProfile> profiles = Stream.of(UserProfileTestFactory.create());
+
+		@Test
+		void shouldHaveSelfLink() {
+			var model = modelAssembler.toCollectionModel(profiles);
+
+			assertThat(model.getLink(IanaLinkRelations.SELF)).isPresent().get().extracting(Link::getHref)
+					.isEqualTo(UserProfileController.BASE_PATH);
+		}
+	}
+}