diff --git a/src/main/java/org/rosi_project/model_sync/modelrepresentation/ModelJoinCreation.java b/src/main/java/org/rosi_project/model_sync/modelrepresentation/ModelJoinCreation.java
index 42a359a07ce94bc7226353bf9c8edd7f9bcb68f5..6c3b0938af7132475450e31800a88d2b9f92ca54 100644
--- a/src/main/java/org/rosi_project/model_sync/modelrepresentation/ModelJoinCreation.java
+++ b/src/main/java/org/rosi_project/model_sync/modelrepresentation/ModelJoinCreation.java
@@ -3,6 +3,7 @@ package org.rosi_project.model_sync.modelrepresentation;
 import static org.rosi_project.model_sync.model_join.representation.util.ModelJoinBuilder.attributes;
 import static org.rosi_project.model_sync.model_join.representation.util.ModelJoinBuilder.outgoing;
 import static org.rosi_project.model_sync.model_join.representation.util.ModelJoinBuilder.supertype;
+import static org.rosi_project.model_sync.model_join.representation.util.ModelJoinBuilder.subtype;
 import static org.rosi_project.model_sync.model_join.representation.util.ModelJoinBuilder.naturalJoin;
 
 import java.io.File;
@@ -13,10 +14,20 @@ import org.rosi_project.model_sync.model_join.representation.grammar.ModelJoinEx
 import org.rosi_project.model_sync.model_join.representation.util.ModelJoinBuilder;
 import org.rosi_project.model_sync.model_join.representation.writer.*;
 
+/**
+ * Create different ModelJoin Queries.
+ * 
+ * @author Christopher
+ */
 public class ModelJoinCreation {
 
 	public static void main(String[] args) {		
-		
+		ModelJoinCreation mjc = new ModelJoinCreation();
+		//mjc.createModelJoinQueriesForSimpleLibrary();
+		mjc.createModelJoinQueriesForShrinkingEclipseLibrary();		
+	}
+	
+	public void createModelJoinQueriesForSimpleLibrary () {
 		ClassResource library = ClassResource.from("lib", "Library");
 	    ClassResource employee = ClassResource.from("lib", "Employee");
 	    ClassResource person = ClassResource.from("lib", "Person");
@@ -100,5 +111,40 @@ public class ModelJoinCreation {
 	    FileBasedModelJoinWriter writerManager = new FileBasedModelJoinWriter(fileManager);
 	    writerManager.write(mjManager);
 	}
+	
+	public void createModelJoinQueriesForShrinkingEclipseLibrary () {
+		ClassResource library = ClassResource.from("eclipse", "Library");
+	    ClassResource book = ClassResource.from("eclipse", "Book");
+	    ClassResource circulatingItem = ClassResource.from("eclipse", "CirculatingItem");	    
+	    ClassResource item = ClassResource.from("eclipse", "Item");
+
+	    AttributePath libraryName = AttributePath.from(library, "name");
+	    AttributePath libraryStock = AttributePath.from(library, "stock");	    
+	    AttributePath itemTitle = AttributePath.from(item, "title");	    
+	    AttributePath bookPages = AttributePath.from(book, "pages");
+	    	    
+	    ModelJoinExpression mj = ModelJoinBuilder.createNewModelJoin()
+		        .add(naturalJoin()
+		            .join(library)
+		            .with(library)
+		            .as(library)
+		            .keep(attributes(libraryName))
+		            .keep(outgoing(libraryStock)
+		                .as(circulatingItem)		                
+		                .keep(attributes(itemTitle))
+		                .keep(subtype(book)
+		                		.as(book)
+		                		.keep(attributes(bookPages))
+				                .buildExpression())
+		                .buildExpression()
+		            )
+		            .done())
+		        .build();
+	    
+	    File file = new File("shrinkingEclipse.modeljoin");
+
+	    FileBasedModelJoinWriter writer = new FileBasedModelJoinWriter(file);
+	    writer.write(mj);
+	}
 
 }