diff --git a/src/main/java/org/assertj/assertions/generator/BaseAssertionGenerator.java b/src/main/java/org/assertj/assertions/generator/BaseAssertionGenerator.java
index 39879ebf..207a1d79 100644
--- a/src/main/java/org/assertj/assertions/generator/BaseAssertionGenerator.java
+++ b/src/main/java/org/assertj/assertions/generator/BaseAssertionGenerator.java
@@ -22,9 +22,12 @@
 import java.io.File;
 import java.io.FileWriter;
 import java.io.IOException;
+import java.util.Collection;
 import java.util.Collections;
 import java.util.Comparator;
+import java.util.HashMap;
 import java.util.HashSet;
+import java.util.Map;
 import java.util.Set;
 import java.util.SortedSet;
 import java.util.TreeSet;
@@ -319,7 +322,8 @@ private String generateAssertionsEntryPointClassContent(final Set<ClassDescripti
         ? determineBestEntryPointsAssertionsClassPackage(classDescriptionSet)
         : entryPointClassPackage;
     entryPointAssertionsClassContent = replace(entryPointAssertionsClassContent, PACKAGE, classPackage);
-
+    String imports = buildImports(classDescriptionSet);
+    entryPointAssertionsClassContent = replace(entryPointAssertionsClassContent, IMPORTS, imports);
     String allEntryPointsAssertionContent = generateAssertionEntryPointMethodsFor(classDescriptionSet,
                                                                                   entryPointAssertionMethodTemplate);
     entryPointAssertionsClassContent = replace(entryPointAssertionsClassContent, ALL_ASSERTIONS_ENTRY_POINTS,
@@ -327,6 +331,45 @@ private String generateAssertionsEntryPointClassContent(final Set<ClassDescripti
     return entryPointAssertionsClassContent;
   }
 
+  private static String buildImports(Set<ClassDescription> classDescriptionSet) {
+    StringBuilder builder = new StringBuilder();
+    for (String anImport : extractImports(classDescriptionSet)) {
+      builder.append(format(IMPORT_LINE, anImport, LINE_SEPARATOR));
+    }
+    return builder.toString();
+  }
+
+  /**
+   * The set will contain all the FQN of the imports for which simple class names can be used.
+   * <p>
+   * Example:
+   * <pre>
+   *   org.example.Outer -> part of the set
+   *   org.example.Outer.Inner -> org.example.Outer in the result
+   *   org.example.other.Outer -> not in the set because another FQN for the same simple class name Outer already exists
+   *   org.example.other.Outer.Inner -> same as above, another FQN for the same outer class name exists
+   * </pre>
+   *
+   * @param classDescriptionSet for which we need to extract the imports
+   * @return a sorted set with all the FQN that can be imported
+   */
+  private static SortedSet<String> extractImports(Set<ClassDescription> classDescriptionSet) {
+    Map<String, String> importedQualifiedName = new HashMap<>(classDescriptionSet.size() * 2);
+    for (final ClassDescription description : new TreeSet<>(classDescriptionSet)) {
+      final String outerClassName = description.getOuterClassName();
+      if (!importedQualifiedName.containsKey(outerClassName)) {
+        String toImport = description.getPackageName() + "." + outerClassName;
+        importedQualifiedName.put(outerClassName, toImport);
+      }
+
+      if (!importedQualifiedName.containsKey(simpleAssertClassName(description))) {
+        String toImport = fullyQualifiedAssertClassName(description);
+        importedQualifiedName.put(simpleAssertClassName(description), toImport);
+      }
+    }
+    return new TreeSet<>(importedQualifiedName.values());
+  }
+
   /**
    * create the assertions entry point file, located in its package directory starting from targetBaseDirectory.
    * <p>
@@ -353,6 +396,7 @@ private File createAssertionsFileFor(final Set<ClassDescription> classDescriptio
 
   private String generateAssertionEntryPointMethodsFor(final Set<ClassDescription> classDescriptionSet,
                                                        Template assertionEntryPointMethodTemplate) {
+    SortedSet<String> resolvedImports = extractImports(classDescriptionSet);
     // sort ClassDescription according to their class name.
     SortedSet<ClassDescription> sortedClassDescriptionSet = new TreeSet<ClassDescription>(classDescriptionSet);
     // generate for each classDescription the entry point method, e.g. assertThat(MyClass) or then(MyClass)
@@ -362,12 +406,23 @@ private String generateAssertionEntryPointMethodsFor(final Set<ClassDescription>
       String assertionEntryPointMethodContent = assertionEntryPointMethodTemplate.getContent();
       // resolve class assert (ex: PlayerAssert)
       // in case of inner classes like Movie.PublicCategory, class assert will be MoviePublicCategoryAssert
+      String customAssertionClass = fullyQualifiedAssertClassName(classDescription);
+      if (resolvedImports.contains(customAssertionClass)) {
+        // if the FQN exists in the resolved imports then we can use its simple class name instead
+        customAssertionClass = simpleAssertClassName(classDescription);
+      }
       assertionEntryPointMethodContent = replace(assertionEntryPointMethodContent, CUSTOM_ASSERTION_CLASS,
-                                                 fullyQualifiedAssertClassName(classDescription));
+                                                 customAssertionClass);
       // resolve class (ex: Player)
       // in case of inner classes like Movie.PublicCategory use class name with outer class i.e. Movie.PublicCategory.
+      String classToAssert = classDescription.getFullyQualifiedClassName();
+      if (resolvedImports.contains(classDescription.getPackageName() + "." + classDescription.getOuterClassName())) {
+        // if the FQN exists in the resolved imports then we can use its simple class name instead or the
+        // simple class name of its outer class like in the case of Movie.PublicCategory
+        classToAssert = classDescription.getClassNameWithOuterClass();
+      }
       assertionEntryPointMethodContent = replace(assertionEntryPointMethodContent, CLASS_TO_ASSERT,
-                                                 classDescription.getFullyQualifiedClassName());
+                                                 classToAssert);
       allAssertThatsContentBuilder.append(lineSeparator).append(assertionEntryPointMethodContent);
     }
     return allAssertThatsContentBuilder.toString();
@@ -405,7 +460,11 @@ private static String abstractAssertClassNameOf(TypeName type) {
   }
 
   private static String fullyQualifiedAssertClassName(ClassDescription classDescription) {
-    return classDescription.getPackageName() + "." + classDescription.getClassNameWithOuterClassNotSeparatedByDots()
+    return classDescription.getPackageName() + "." + simpleAssertClassName(classDescription);
+  }
+
+  private static String simpleAssertClassName(ClassDescription classDescription) {
+    return classDescription.getClassNameWithOuterClassNotSeparatedByDots()
            + ASSERT_CLASS_SUFFIX;
   }
 
diff --git a/src/main/java/org/assertj/assertions/generator/description/ClassDescription.java b/src/main/java/org/assertj/assertions/generator/description/ClassDescription.java
index d732a494..3b8a7b41 100644
--- a/src/main/java/org/assertj/assertions/generator/description/ClassDescription.java
+++ b/src/main/java/org/assertj/assertions/generator/description/ClassDescription.java
@@ -60,7 +60,11 @@ public String getClassNameWithOuterClass() {
   public String getClassNameWithOuterClassNotSeparatedByDots() {
     return classTypeName.getSimpleNameWithOuterClassNotSeparatedByDots();
   }
-  
+
+  public String getOuterClassName() {
+    return classTypeName.getOuterClassName();
+  }
+
   public String getPackageName() {
     return classTypeName.getPackageName();
   }
diff --git a/src/main/java/org/assertj/assertions/generator/description/TypeName.java b/src/main/java/org/assertj/assertions/generator/description/TypeName.java
index 4662c3cc..b7a6e08c 100644
--- a/src/main/java/org/assertj/assertions/generator/description/TypeName.java
+++ b/src/main/java/org/assertj/assertions/generator/description/TypeName.java
@@ -47,6 +47,7 @@ public class TypeName implements Comparable<TypeName> {
   private String typeSimpleNameWithOuterClass;
   private String typeSimpleNameWithOuterClassNotSeparatedByDots;
   private String packageName;
+  private String outerClassName;
 
   public TypeName(String typeSimpleName, String packageName) {
     if (typeSimpleName == null) throw new IllegalArgumentException("type simple name should not be null");
@@ -82,6 +83,7 @@ public TypeName(Class<?> clazz) {
     this.typeSimpleNameWithOuterClass = ClassUtil.getSimpleNameWithOuterClass(clazz);
     this.typeSimpleNameWithOuterClassNotSeparatedByDots = ClassUtil.getSimpleNameWithOuterClassNotSeparatedByDots(clazz);
     this.packageName = clazz.getPackage() == null ? NO_PACKAGE : clazz.getPackage().getName();
+    this.outerClassName = ClassUtil.getSimpleNameOuterClass(clazz);
   }
 
   public String getSimpleName() {
@@ -104,6 +106,10 @@ private void setPackageName(String packageName) {
     this.packageName = packageName == null ? NO_PACKAGE : packageName;
   }
 
+  public String getOuterClassName() {
+    return outerClassName;
+  }
+
   public boolean isPrimitive() {
     return contains(PRIMITIVE_TYPES, typeSimpleName) && isEmpty(packageName);
   }
diff --git a/src/main/java/org/assertj/assertions/generator/util/ClassUtil.java b/src/main/java/org/assertj/assertions/generator/util/ClassUtil.java
index 3939c58b..c8649893 100644
--- a/src/main/java/org/assertj/assertions/generator/util/ClassUtil.java
+++ b/src/main/java/org/assertj/assertions/generator/util/ClassUtil.java
@@ -475,6 +475,30 @@ public static String getSimpleNameWithOuterClass(Class<?> clazz) {
     return nestedClassName;
   }
 
+  /**
+   * Gets the simple name of the outer class, if the class is not nested then this is the same as
+   * {@link Class#getSimpleName()}.
+   * <p>
+   * Example:
+   *
+   *  <pre>
+   *    OnlyOuter -> OnlyOuter
+   *    Outer.Inner -> Outer
+   *    Outer.Inner1.Inner2 -> Outer
+   *  </pre>
+   * @param clazz for which the outer class name should be found
+   * @return see description
+   */
+  public static String getSimpleNameOuterClass(Class<?> clazz) {
+    if (isNotNestedClass(clazz)) {
+      return clazz.getSimpleName();
+    }
+    String outerClassName = clazz.getName();
+    outerClassName = outerClassName.substring(clazz.getPackage().getName().length() + 1);
+    outerClassName = outerClassName.substring(0, outerClassName.indexOf('$'));
+    return outerClassName;
+  }
+
   /**
    * Gets the simple name of the class but, unlike {@link Class#getSimpleName()}, it includes the name of the outer
    * class when <code>clazz</code> is an inner class, both class names are concatenated.
diff --git a/src/main/resources/templates/auto_closeable_bdd_soft_assertions_entry_point_class_template.txt b/src/main/resources/templates/auto_closeable_bdd_soft_assertions_entry_point_class_template.txt
index b2c47c63..377f0e43 100644
--- a/src/main/resources/templates/auto_closeable_bdd_soft_assertions_entry_point_class_template.txt
+++ b/src/main/resources/templates/auto_closeable_bdd_soft_assertions_entry_point_class_template.txt
@@ -1,5 +1,6 @@
 package ${package};
 
+${imports}
 /**
  * A version of {@link BDDSoftAssertions} that uses try-with-resources statement to automatically call
  * {@link BDDSoftAssertions#assertAll()} so that you don't forget to.
diff --git a/src/main/resources/templates/auto_closeable_soft_assertions_entry_point_class_template.txt b/src/main/resources/templates/auto_closeable_soft_assertions_entry_point_class_template.txt
index 7bde364f..c360ce12 100644
--- a/src/main/resources/templates/auto_closeable_soft_assertions_entry_point_class_template.txt
+++ b/src/main/resources/templates/auto_closeable_soft_assertions_entry_point_class_template.txt
@@ -1,5 +1,6 @@
 package ${package};
 
+${imports}
 /**
  * A version of {@link SoftAssertions} that uses try-with-resources statement to automatically call
  * {@link SoftAssertions#assertAll()} so that you don't forget to.
diff --git a/src/main/resources/templates/bdd_assertions_entry_point_class_template.txt b/src/main/resources/templates/bdd_assertions_entry_point_class_template.txt
index e8ac7e3e..2f080bb9 100644
--- a/src/main/resources/templates/bdd_assertions_entry_point_class_template.txt
+++ b/src/main/resources/templates/bdd_assertions_entry_point_class_template.txt
@@ -1,5 +1,6 @@
 package ${package};
 
+${imports}
 /**
  * Entry point for BDD assertions of different data types.
  */
diff --git a/src/main/resources/templates/bdd_soft_assertions_entry_point_class_template.txt b/src/main/resources/templates/bdd_soft_assertions_entry_point_class_template.txt
index 7f1a1460..fd979519 100644
--- a/src/main/resources/templates/bdd_soft_assertions_entry_point_class_template.txt
+++ b/src/main/resources/templates/bdd_soft_assertions_entry_point_class_template.txt
@@ -1,5 +1,6 @@
 package ${package};
 
+${imports}
 /**
  * Entry point for BDD soft assertions of different data types.
  */
diff --git a/src/main/resources/templates/junit_bdd_soft_assertions_entry_point_class_template.txt b/src/main/resources/templates/junit_bdd_soft_assertions_entry_point_class_template.txt
index 103e18be..0d0ad46c 100644
--- a/src/main/resources/templates/junit_bdd_soft_assertions_entry_point_class_template.txt
+++ b/src/main/resources/templates/junit_bdd_soft_assertions_entry_point_class_template.txt
@@ -1,5 +1,6 @@
 package ${package};
 
+${imports}
 /**
  * Like {@link BDDSoftAssertions} but as a junit rule that takes care of calling
  * {@link SoftAssertions#assertAll() assertAll()} at the end of each test.
diff --git a/src/main/resources/templates/junit_soft_assertions_entry_point_class_template.txt b/src/main/resources/templates/junit_soft_assertions_entry_point_class_template.txt
index 1a0a6ed6..feca23a2 100644
--- a/src/main/resources/templates/junit_soft_assertions_entry_point_class_template.txt
+++ b/src/main/resources/templates/junit_soft_assertions_entry_point_class_template.txt
@@ -1,5 +1,6 @@
 package ${package};
 
+${imports}
 /**
  * Like {@link SoftAssertions} but as a junit rule that takes care of calling
  * {@link SoftAssertions#assertAll() assertAll()} at the end of each test.
diff --git a/src/main/resources/templates/soft_assertions_entry_point_class_template.txt b/src/main/resources/templates/soft_assertions_entry_point_class_template.txt
index 7b1b0d4a..b9b87c56 100644
--- a/src/main/resources/templates/soft_assertions_entry_point_class_template.txt
+++ b/src/main/resources/templates/soft_assertions_entry_point_class_template.txt
@@ -1,5 +1,6 @@
 package ${package};
 
+${imports}
 /**
  * Entry point for soft assertions of different data types.
  */
diff --git a/src/main/resources/templates/standard_assertions_entry_point_class_template.txt b/src/main/resources/templates/standard_assertions_entry_point_class_template.txt
index a264498b..a45fee19 100644
--- a/src/main/resources/templates/standard_assertions_entry_point_class_template.txt
+++ b/src/main/resources/templates/standard_assertions_entry_point_class_template.txt
@@ -1,5 +1,6 @@
 package ${package};
 
+${imports}
 /**
  * Entry point for assertions of different data types. Each method in this class is a static factory for the
  * type-specific assertion objects.
diff --git a/src/test/java/org/assertj/assertions/generator/NestedClassesTest.java b/src/test/java/org/assertj/assertions/generator/NestedClassesTest.java
index 505c5dfc..709ac90e 100644
--- a/src/test/java/org/assertj/assertions/generator/NestedClassesTest.java
+++ b/src/test/java/org/assertj/assertions/generator/NestedClassesTest.java
@@ -22,26 +22,31 @@
 public interface NestedClassesTest {
   @DataPoint
   public static final NestedClass SNC = new NestedClass(OuterClass.StaticNestedPerson.class,
-                                                        "OuterClass.StaticNestedPerson");
+                                                        "OuterClass.StaticNestedPerson", "OuterClass");
   @DataPoint
   public static final NestedClass SNC_SNC = new NestedClass(OuterClass.StaticNestedPerson.SNP_StaticNestedPerson.class,
-                                                            "OuterClass.StaticNestedPerson.SNP_StaticNestedPerson");
+                                                            "OuterClass.StaticNestedPerson.SNP_StaticNestedPerson",
+                                                            "OuterClass");
   @DataPoint
   public static final NestedClass SNC_IC = new NestedClass(OuterClass.StaticNestedPerson.SNP_InnerPerson.class,
-                                                           "OuterClass.StaticNestedPerson.SNP_InnerPerson");
+                                                           "OuterClass.StaticNestedPerson.SNP_InnerPerson",
+                                                           "OuterClass");
   @DataPoint
-  public static final NestedClass IC = new NestedClass(OuterClass.InnerPerson.class, "OuterClass.InnerPerson");
+  public static final NestedClass IC = new NestedClass(OuterClass.InnerPerson.class, "OuterClass.InnerPerson",
+                                                       "OuterClass");
   @DataPoint
   public static final NestedClass IC_IC = new NestedClass(OuterClass.InnerPerson.IP_InnerPerson.class,
-                                                          "OuterClass.InnerPerson.IP_InnerPerson");
+                                                          "OuterClass.InnerPerson.IP_InnerPerson", "OuterClass");
 
   public static class NestedClass {
     private final Class<?> nestedClass;
     private final String classNameWithOuterClass;
+    private final String outerClassName;
 
-    public NestedClass(Class<?> nestedClass, String classNameWithOuterClass) {
+    public NestedClass(Class<?> nestedClass, String classNameWithOuterClass, String outerClassName) {
       this.nestedClass = nestedClass;
       this.classNameWithOuterClass = classNameWithOuterClass;
+      this.outerClassName = outerClassName;
     }
 
     public String getClassNameWithOuterClass() {
@@ -55,5 +60,9 @@ public String getClassNameWithOuterClassNotSeparatedBytDots() {
     public Class<?> getNestedClass() {
       return nestedClass;
     }
+
+    public String getOuterClassName() {
+      return outerClassName;
+    }
   }
 }
diff --git a/src/test/java/org/assertj/assertions/generator/util/ClassUtilTest.java b/src/test/java/org/assertj/assertions/generator/util/ClassUtilTest.java
index cfb8466c..dea7648b 100644
--- a/src/test/java/org/assertj/assertions/generator/util/ClassUtilTest.java
+++ b/src/test/java/org/assertj/assertions/generator/util/ClassUtilTest.java
@@ -17,6 +17,7 @@
 import static org.assertj.assertions.generator.util.ClassUtil.getClassesRelatedTo;
 import static org.assertj.assertions.generator.util.ClassUtil.getNegativePredicateFor;
 import static org.assertj.assertions.generator.util.ClassUtil.getPredicatePrefix;
+import static org.assertj.assertions.generator.util.ClassUtil.getSimpleNameOuterClass;
 import static org.assertj.assertions.generator.util.ClassUtil.getSimpleNameWithOuterClass;
 import static org.assertj.assertions.generator.util.ClassUtil.getSimpleNameWithOuterClassNotSeparatedByDots;
 import static org.assertj.assertions.generator.util.ClassUtil.getterMethodsOf;
@@ -211,6 +212,13 @@ public void should_return_inner_class_name_with_outer_class_name(NestedClass nes
     assertThat(actualName).isEqualTo(nestedClass.getClassNameWithOuterClass());
   }
 
+  @Theory
+  public void should_return_outer_class_name_for_nested_class(NestedClass nestedClass) {
+    String actualName = getSimpleNameOuterClass(nestedClass.getNestedClass());
+    assertThat(actualName).isEqualTo(nestedClass.getOuterClassName());
+  }
+
+
   @Theory
   public void should_return_inner_class_name_with_outer_class_name_not_separated_by_dots(NestedClass nestedClass) {
     String actualName = getSimpleNameWithOuterClassNotSeparatedByDots(nestedClass.getNestedClass());
@@ -228,6 +236,11 @@ public void testGetSimpleNameWithOuterClass_notNestedClass() throws Exception {
     assertThat(ClassUtil.getSimpleNameWithOuterClass(String.class)).isEqualTo("String");
   }
 
+  @Test
+  public void testGetSimpleNameOuterClass_notNestedClass() throws Exception {
+    assertThat(ClassUtil.getSimpleNameOuterClass(String.class)).isEqualTo("String");
+  }
+
   @Test
   public void getClass_on_parameterized_List_should_return_List_class() throws Exception {
     Method method = Generic.class.getMethod("getListOfInteger");
diff --git a/src/test/resources/Assertions.expected.txt b/src/test/resources/Assertions.expected.txt
index f5c037ca..48c55d7d 100644
--- a/src/test/resources/Assertions.expected.txt
+++ b/src/test/resources/Assertions.expected.txt
@@ -1,5 +1,23 @@
 package org.assertj.assertions.generator.data;
 
+import org.assertj.assertions.generator.data.ArtWork;
+import org.assertj.assertions.generator.data.ArtWorkAssert;
+import org.assertj.assertions.generator.data.Movie;
+import org.assertj.assertions.generator.data.MovieAssert;
+import org.assertj.assertions.generator.data.MoviePublicCategoryAssert;
+import org.assertj.assertions.generator.data.Name;
+import org.assertj.assertions.generator.data.NameAssert;
+import org.assertj.assertions.generator.data.TreeEnum;
+import org.assertj.assertions.generator.data.TreeEnumAssert;
+import org.assertj.assertions.generator.data.lotr.Race;
+import org.assertj.assertions.generator.data.lotr.RaceAssert;
+import org.assertj.assertions.generator.data.lotr.Ring;
+import org.assertj.assertions.generator.data.lotr.RingAssert;
+import org.assertj.assertions.generator.data.lotr.TolkienCharacter;
+import org.assertj.assertions.generator.data.lotr.TolkienCharacterAssert;
+import org.assertj.assertions.generator.data.nba.Player;
+import org.assertj.assertions.generator.data.nba.PlayerAssert;
+
 /**
  * Entry point for assertions of different data types. Each method in this class is a static factory for the
  * type-specific assertion objects.
@@ -8,102 +26,102 @@ package org.assertj.assertions.generator.data;
 public class Assertions {
 
   /**
-   * Creates a new instance of <code>{@link org.assertj.assertions.generator.data.ArtWorkAssert}</code>.
+   * Creates a new instance of <code>{@link ArtWorkAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public static org.assertj.assertions.generator.data.ArtWorkAssert assertThat(org.assertj.assertions.generator.data.ArtWork actual) {
-    return new org.assertj.assertions.generator.data.ArtWorkAssert(actual);
+  public static ArtWorkAssert assertThat(ArtWork actual) {
+    return new ArtWorkAssert(actual);
   }
 
   /**
-   * Creates a new instance of <code>{@link org.assertj.assertions.generator.data.MovieAssert}</code>.
+   * Creates a new instance of <code>{@link MovieAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public static org.assertj.assertions.generator.data.MovieAssert assertThat(org.assertj.assertions.generator.data.Movie actual) {
-    return new org.assertj.assertions.generator.data.MovieAssert(actual);
+  public static MovieAssert assertThat(Movie actual) {
+    return new MovieAssert(actual);
   }
 
   /**
-   * Creates a new instance of <code>{@link org.assertj.assertions.generator.data.MoviePublicCategoryAssert}</code>.
+   * Creates a new instance of <code>{@link MoviePublicCategoryAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public static org.assertj.assertions.generator.data.MoviePublicCategoryAssert assertThat(org.assertj.assertions.generator.data.Movie.PublicCategory actual) {
-    return new org.assertj.assertions.generator.data.MoviePublicCategoryAssert(actual);
+  public static MoviePublicCategoryAssert assertThat(Movie.PublicCategory actual) {
+    return new MoviePublicCategoryAssert(actual);
   }
 
   /**
-   * Creates a new instance of <code>{@link org.assertj.assertions.generator.data.NameAssert}</code>.
+   * Creates a new instance of <code>{@link NameAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public static org.assertj.assertions.generator.data.NameAssert assertThat(org.assertj.assertions.generator.data.Name actual) {
-    return new org.assertj.assertions.generator.data.NameAssert(actual);
+  public static NameAssert assertThat(Name actual) {
+    return new NameAssert(actual);
   }
 
   /**
-   * Creates a new instance of <code>{@link org.assertj.assertions.generator.data.TreeEnumAssert}</code>.
+   * Creates a new instance of <code>{@link TreeEnumAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public static org.assertj.assertions.generator.data.TreeEnumAssert assertThat(org.assertj.assertions.generator.data.TreeEnum actual) {
-    return new org.assertj.assertions.generator.data.TreeEnumAssert(actual);
+  public static TreeEnumAssert assertThat(TreeEnum actual) {
+    return new TreeEnumAssert(actual);
   }
 
   /**
-   * Creates a new instance of <code>{@link org.assertj.assertions.generator.data.lotr.RaceAssert}</code>.
+   * Creates a new instance of <code>{@link RaceAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public static org.assertj.assertions.generator.data.lotr.RaceAssert assertThat(org.assertj.assertions.generator.data.lotr.Race actual) {
-    return new org.assertj.assertions.generator.data.lotr.RaceAssert(actual);
+  public static RaceAssert assertThat(Race actual) {
+    return new RaceAssert(actual);
   }
 
   /**
-   * Creates a new instance of <code>{@link org.assertj.assertions.generator.data.lotr.RingAssert}</code>.
+   * Creates a new instance of <code>{@link RingAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public static org.assertj.assertions.generator.data.lotr.RingAssert assertThat(org.assertj.assertions.generator.data.lotr.Ring actual) {
-    return new org.assertj.assertions.generator.data.lotr.RingAssert(actual);
+  public static RingAssert assertThat(Ring actual) {
+    return new RingAssert(actual);
   }
 
   /**
-   * Creates a new instance of <code>{@link org.assertj.assertions.generator.data.lotr.TolkienCharacterAssert}</code>.
+   * Creates a new instance of <code>{@link TolkienCharacterAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public static org.assertj.assertions.generator.data.lotr.TolkienCharacterAssert assertThat(org.assertj.assertions.generator.data.lotr.TolkienCharacter actual) {
-    return new org.assertj.assertions.generator.data.lotr.TolkienCharacterAssert(actual);
+  public static TolkienCharacterAssert assertThat(TolkienCharacter actual) {
+    return new TolkienCharacterAssert(actual);
   }
 
   /**
-   * Creates a new instance of <code>{@link org.assertj.assertions.generator.data.nba.PlayerAssert}</code>.
+   * Creates a new instance of <code>{@link PlayerAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public static org.assertj.assertions.generator.data.nba.PlayerAssert assertThat(org.assertj.assertions.generator.data.nba.Player actual) {
-    return new org.assertj.assertions.generator.data.nba.PlayerAssert(actual);
+  public static PlayerAssert assertThat(Player actual) {
+    return new PlayerAssert(actual);
   }
 
   /**
diff --git a/src/test/resources/AssertionsForClassesWithSameName.expected.txt b/src/test/resources/AssertionsForClassesWithSameName.expected.txt
index 42dc1b4f..9f2cce20 100644
--- a/src/test/resources/AssertionsForClassesWithSameName.expected.txt
+++ b/src/test/resources/AssertionsForClassesWithSameName.expected.txt
@@ -1,5 +1,8 @@
 package org;
 
+import org.assertj.assertions.generator.data.Team;
+import org.assertj.assertions.generator.data.TeamAssert;
+
 /**
  * Entry point for assertions of different data types. Each method in this class is a static factory for the
  * type-specific assertion objects.
@@ -8,14 +11,14 @@ package org;
 public class Assertions {
 
   /**
-   * Creates a new instance of <code>{@link org.assertj.assertions.generator.data.TeamAssert}</code>.
+   * Creates a new instance of <code>{@link TeamAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public static org.assertj.assertions.generator.data.TeamAssert assertThat(org.assertj.assertions.generator.data.Team actual) {
-    return new org.assertj.assertions.generator.data.TeamAssert(actual);
+  public static TeamAssert assertThat(Team actual) {
+    return new TeamAssert(actual);
   }
 
   /**
diff --git a/src/test/resources/AssertionsWithCustomPackage.expected.txt b/src/test/resources/AssertionsWithCustomPackage.expected.txt
index 6cdb14fe..b11546b5 100644
--- a/src/test/resources/AssertionsWithCustomPackage.expected.txt
+++ b/src/test/resources/AssertionsWithCustomPackage.expected.txt
@@ -1,5 +1,23 @@
 package my.custom.package;
 
+import org.assertj.assertions.generator.data.ArtWork;
+import org.assertj.assertions.generator.data.ArtWorkAssert;
+import org.assertj.assertions.generator.data.Movie;
+import org.assertj.assertions.generator.data.MovieAssert;
+import org.assertj.assertions.generator.data.MoviePublicCategoryAssert;
+import org.assertj.assertions.generator.data.Name;
+import org.assertj.assertions.generator.data.NameAssert;
+import org.assertj.assertions.generator.data.TreeEnum;
+import org.assertj.assertions.generator.data.TreeEnumAssert;
+import org.assertj.assertions.generator.data.lotr.Race;
+import org.assertj.assertions.generator.data.lotr.RaceAssert;
+import org.assertj.assertions.generator.data.lotr.Ring;
+import org.assertj.assertions.generator.data.lotr.RingAssert;
+import org.assertj.assertions.generator.data.lotr.TolkienCharacter;
+import org.assertj.assertions.generator.data.lotr.TolkienCharacterAssert;
+import org.assertj.assertions.generator.data.nba.Player;
+import org.assertj.assertions.generator.data.nba.PlayerAssert;
+
 /**
  * Entry point for assertions of different data types. Each method in this class is a static factory for the
  * type-specific assertion objects.
@@ -8,102 +26,102 @@ package my.custom.package;
 public class Assertions {
 
   /**
-   * Creates a new instance of <code>{@link org.assertj.assertions.generator.data.ArtWorkAssert}</code>.
+   * Creates a new instance of <code>{@link ArtWorkAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public static org.assertj.assertions.generator.data.ArtWorkAssert assertThat(org.assertj.assertions.generator.data.ArtWork actual) {
-    return new org.assertj.assertions.generator.data.ArtWorkAssert(actual);
+  public static ArtWorkAssert assertThat(ArtWork actual) {
+    return new ArtWorkAssert(actual);
   }
 
   /**
-   * Creates a new instance of <code>{@link org.assertj.assertions.generator.data.MovieAssert}</code>.
+   * Creates a new instance of <code>{@link MovieAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public static org.assertj.assertions.generator.data.MovieAssert assertThat(org.assertj.assertions.generator.data.Movie actual) {
-    return new org.assertj.assertions.generator.data.MovieAssert(actual);
+  public static MovieAssert assertThat(Movie actual) {
+    return new MovieAssert(actual);
   }
 
   /**
-   * Creates a new instance of <code>{@link org.assertj.assertions.generator.data.MoviePublicCategoryAssert}</code>.
+   * Creates a new instance of <code>{@link MoviePublicCategoryAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public static org.assertj.assertions.generator.data.MoviePublicCategoryAssert assertThat(org.assertj.assertions.generator.data.Movie.PublicCategory actual) {
-    return new org.assertj.assertions.generator.data.MoviePublicCategoryAssert(actual);
+  public static MoviePublicCategoryAssert assertThat(Movie.PublicCategory actual) {
+    return new MoviePublicCategoryAssert(actual);
   }
 
   /**
-   * Creates a new instance of <code>{@link org.assertj.assertions.generator.data.NameAssert}</code>.
+   * Creates a new instance of <code>{@link NameAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public static org.assertj.assertions.generator.data.NameAssert assertThat(org.assertj.assertions.generator.data.Name actual) {
-    return new org.assertj.assertions.generator.data.NameAssert(actual);
+  public static NameAssert assertThat(Name actual) {
+    return new NameAssert(actual);
   }
 
   /**
-   * Creates a new instance of <code>{@link org.assertj.assertions.generator.data.TreeEnumAssert}</code>.
+   * Creates a new instance of <code>{@link TreeEnumAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public static org.assertj.assertions.generator.data.TreeEnumAssert assertThat(org.assertj.assertions.generator.data.TreeEnum actual) {
-    return new org.assertj.assertions.generator.data.TreeEnumAssert(actual);
+  public static TreeEnumAssert assertThat(TreeEnum actual) {
+    return new TreeEnumAssert(actual);
   }
 
   /**
-   * Creates a new instance of <code>{@link org.assertj.assertions.generator.data.lotr.RaceAssert}</code>.
+   * Creates a new instance of <code>{@link RaceAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public static org.assertj.assertions.generator.data.lotr.RaceAssert assertThat(org.assertj.assertions.generator.data.lotr.Race actual) {
-    return new org.assertj.assertions.generator.data.lotr.RaceAssert(actual);
+  public static RaceAssert assertThat(Race actual) {
+    return new RaceAssert(actual);
   }
 
   /**
-   * Creates a new instance of <code>{@link org.assertj.assertions.generator.data.lotr.RingAssert}</code>.
+   * Creates a new instance of <code>{@link RingAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public static org.assertj.assertions.generator.data.lotr.RingAssert assertThat(org.assertj.assertions.generator.data.lotr.Ring actual) {
-    return new org.assertj.assertions.generator.data.lotr.RingAssert(actual);
+  public static RingAssert assertThat(Ring actual) {
+    return new RingAssert(actual);
   }
 
   /**
-   * Creates a new instance of <code>{@link org.assertj.assertions.generator.data.lotr.TolkienCharacterAssert}</code>.
+   * Creates a new instance of <code>{@link TolkienCharacterAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public static org.assertj.assertions.generator.data.lotr.TolkienCharacterAssert assertThat(org.assertj.assertions.generator.data.lotr.TolkienCharacter actual) {
-    return new org.assertj.assertions.generator.data.lotr.TolkienCharacterAssert(actual);
+  public static TolkienCharacterAssert assertThat(TolkienCharacter actual) {
+    return new TolkienCharacterAssert(actual);
   }
 
   /**
-   * Creates a new instance of <code>{@link org.assertj.assertions.generator.data.nba.PlayerAssert}</code>.
+   * Creates a new instance of <code>{@link PlayerAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public static org.assertj.assertions.generator.data.nba.PlayerAssert assertThat(org.assertj.assertions.generator.data.nba.Player actual) {
-    return new org.assertj.assertions.generator.data.nba.PlayerAssert(actual);
+  public static PlayerAssert assertThat(Player actual) {
+    return new PlayerAssert(actual);
   }
 
   /**
diff --git a/src/test/resources/AutoCloseableBDDSoftAssertions.expected.txt b/src/test/resources/AutoCloseableBDDSoftAssertions.expected.txt
index 4c7f1657..c2ef09e9 100644
--- a/src/test/resources/AutoCloseableBDDSoftAssertions.expected.txt
+++ b/src/test/resources/AutoCloseableBDDSoftAssertions.expected.txt
@@ -1,5 +1,23 @@
 package org.assertj.assertions.generator.data;
 
+import org.assertj.assertions.generator.data.ArtWork;
+import org.assertj.assertions.generator.data.ArtWorkAssert;
+import org.assertj.assertions.generator.data.Movie;
+import org.assertj.assertions.generator.data.MovieAssert;
+import org.assertj.assertions.generator.data.MoviePublicCategoryAssert;
+import org.assertj.assertions.generator.data.Name;
+import org.assertj.assertions.generator.data.NameAssert;
+import org.assertj.assertions.generator.data.TreeEnum;
+import org.assertj.assertions.generator.data.TreeEnumAssert;
+import org.assertj.assertions.generator.data.lotr.Race;
+import org.assertj.assertions.generator.data.lotr.RaceAssert;
+import org.assertj.assertions.generator.data.lotr.Ring;
+import org.assertj.assertions.generator.data.lotr.RingAssert;
+import org.assertj.assertions.generator.data.lotr.TolkienCharacter;
+import org.assertj.assertions.generator.data.lotr.TolkienCharacterAssert;
+import org.assertj.assertions.generator.data.nba.Player;
+import org.assertj.assertions.generator.data.nba.PlayerAssert;
+
 /**
  * A version of {@link BDDSoftAssertions} that uses try-with-resources statement to automatically call
  * {@link BDDSoftAssertions#assertAll()} so that you don't forget to.
@@ -24,102 +42,102 @@ package org.assertj.assertions.generator.data;
 public class AutoCloseableBDDSoftAssertions extends org.assertj.core.api.BDDSoftAssertions implements AutoCloseable {
 
   /**
-   * Creates a new "soft" instance of <code>{@link org.assertj.assertions.generator.data.ArtWorkAssert}</code>.
+   * Creates a new "soft" instance of <code>{@link ArtWorkAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created "soft" assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public org.assertj.assertions.generator.data.ArtWorkAssert then(org.assertj.assertions.generator.data.ArtWork actual) {
-    return proxy(org.assertj.assertions.generator.data.ArtWorkAssert.class, org.assertj.assertions.generator.data.ArtWork.class, actual);
+  public ArtWorkAssert then(ArtWork actual) {
+    return proxy(ArtWorkAssert.class, ArtWork.class, actual);
   }
 
   /**
-   * Creates a new "soft" instance of <code>{@link org.assertj.assertions.generator.data.MovieAssert}</code>.
+   * Creates a new "soft" instance of <code>{@link MovieAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created "soft" assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public org.assertj.assertions.generator.data.MovieAssert then(org.assertj.assertions.generator.data.Movie actual) {
-    return proxy(org.assertj.assertions.generator.data.MovieAssert.class, org.assertj.assertions.generator.data.Movie.class, actual);
+  public MovieAssert then(Movie actual) {
+    return proxy(MovieAssert.class, Movie.class, actual);
   }
 
   /**
-   * Creates a new "soft" instance of <code>{@link org.assertj.assertions.generator.data.MoviePublicCategoryAssert}</code>.
+   * Creates a new "soft" instance of <code>{@link MoviePublicCategoryAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created "soft" assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public org.assertj.assertions.generator.data.MoviePublicCategoryAssert then(org.assertj.assertions.generator.data.Movie.PublicCategory actual) {
-    return proxy(org.assertj.assertions.generator.data.MoviePublicCategoryAssert.class, org.assertj.assertions.generator.data.Movie.PublicCategory.class, actual);
+  public MoviePublicCategoryAssert then(Movie.PublicCategory actual) {
+    return proxy(MoviePublicCategoryAssert.class, Movie.PublicCategory.class, actual);
   }
 
   /**
-   * Creates a new "soft" instance of <code>{@link org.assertj.assertions.generator.data.NameAssert}</code>.
+   * Creates a new "soft" instance of <code>{@link NameAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created "soft" assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public org.assertj.assertions.generator.data.NameAssert then(org.assertj.assertions.generator.data.Name actual) {
-    return proxy(org.assertj.assertions.generator.data.NameAssert.class, org.assertj.assertions.generator.data.Name.class, actual);
+  public NameAssert then(Name actual) {
+    return proxy(NameAssert.class, Name.class, actual);
   }
 
   /**
-   * Creates a new "soft" instance of <code>{@link org.assertj.assertions.generator.data.TreeEnumAssert}</code>.
+   * Creates a new "soft" instance of <code>{@link TreeEnumAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created "soft" assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public org.assertj.assertions.generator.data.TreeEnumAssert then(org.assertj.assertions.generator.data.TreeEnum actual) {
-    return proxy(org.assertj.assertions.generator.data.TreeEnumAssert.class, org.assertj.assertions.generator.data.TreeEnum.class, actual);
+  public TreeEnumAssert then(TreeEnum actual) {
+    return proxy(TreeEnumAssert.class, TreeEnum.class, actual);
   }
 
   /**
-   * Creates a new "soft" instance of <code>{@link org.assertj.assertions.generator.data.lotr.RaceAssert}</code>.
+   * Creates a new "soft" instance of <code>{@link RaceAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created "soft" assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public org.assertj.assertions.generator.data.lotr.RaceAssert then(org.assertj.assertions.generator.data.lotr.Race actual) {
-    return proxy(org.assertj.assertions.generator.data.lotr.RaceAssert.class, org.assertj.assertions.generator.data.lotr.Race.class, actual);
+  public RaceAssert then(Race actual) {
+    return proxy(RaceAssert.class, Race.class, actual);
   }
 
   /**
-   * Creates a new "soft" instance of <code>{@link org.assertj.assertions.generator.data.lotr.RingAssert}</code>.
+   * Creates a new "soft" instance of <code>{@link RingAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created "soft" assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public org.assertj.assertions.generator.data.lotr.RingAssert then(org.assertj.assertions.generator.data.lotr.Ring actual) {
-    return proxy(org.assertj.assertions.generator.data.lotr.RingAssert.class, org.assertj.assertions.generator.data.lotr.Ring.class, actual);
+  public RingAssert then(Ring actual) {
+    return proxy(RingAssert.class, Ring.class, actual);
   }
 
   /**
-   * Creates a new "soft" instance of <code>{@link org.assertj.assertions.generator.data.lotr.TolkienCharacterAssert}</code>.
+   * Creates a new "soft" instance of <code>{@link TolkienCharacterAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created "soft" assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public org.assertj.assertions.generator.data.lotr.TolkienCharacterAssert then(org.assertj.assertions.generator.data.lotr.TolkienCharacter actual) {
-    return proxy(org.assertj.assertions.generator.data.lotr.TolkienCharacterAssert.class, org.assertj.assertions.generator.data.lotr.TolkienCharacter.class, actual);
+  public TolkienCharacterAssert then(TolkienCharacter actual) {
+    return proxy(TolkienCharacterAssert.class, TolkienCharacter.class, actual);
   }
 
   /**
-   * Creates a new "soft" instance of <code>{@link org.assertj.assertions.generator.data.nba.PlayerAssert}</code>.
+   * Creates a new "soft" instance of <code>{@link PlayerAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created "soft" assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public org.assertj.assertions.generator.data.nba.PlayerAssert then(org.assertj.assertions.generator.data.nba.Player actual) {
-    return proxy(org.assertj.assertions.generator.data.nba.PlayerAssert.class, org.assertj.assertions.generator.data.nba.Player.class, actual);
+  public PlayerAssert then(Player actual) {
+    return proxy(PlayerAssert.class, Player.class, actual);
   }
 
   @Override
diff --git a/src/test/resources/AutoCloseableSoftAssertions.expected.txt b/src/test/resources/AutoCloseableSoftAssertions.expected.txt
index 1b61541f..f804bc7c 100644
--- a/src/test/resources/AutoCloseableSoftAssertions.expected.txt
+++ b/src/test/resources/AutoCloseableSoftAssertions.expected.txt
@@ -1,5 +1,23 @@
 package org.assertj.assertions.generator.data;
 
+import org.assertj.assertions.generator.data.ArtWork;
+import org.assertj.assertions.generator.data.ArtWorkAssert;
+import org.assertj.assertions.generator.data.Movie;
+import org.assertj.assertions.generator.data.MovieAssert;
+import org.assertj.assertions.generator.data.MoviePublicCategoryAssert;
+import org.assertj.assertions.generator.data.Name;
+import org.assertj.assertions.generator.data.NameAssert;
+import org.assertj.assertions.generator.data.TreeEnum;
+import org.assertj.assertions.generator.data.TreeEnumAssert;
+import org.assertj.assertions.generator.data.lotr.Race;
+import org.assertj.assertions.generator.data.lotr.RaceAssert;
+import org.assertj.assertions.generator.data.lotr.Ring;
+import org.assertj.assertions.generator.data.lotr.RingAssert;
+import org.assertj.assertions.generator.data.lotr.TolkienCharacter;
+import org.assertj.assertions.generator.data.lotr.TolkienCharacterAssert;
+import org.assertj.assertions.generator.data.nba.Player;
+import org.assertj.assertions.generator.data.nba.PlayerAssert;
+
 /**
  * A version of {@link SoftAssertions} that uses try-with-resources statement to automatically call
  * {@link SoftAssertions#assertAll()} so that you don't forget to.
@@ -23,102 +41,102 @@ package org.assertj.assertions.generator.data;
 public class AutoCloseableSoftAssertions extends org.assertj.core.api.SoftAssertions implements AutoCloseable {
 
   /**
-   * Creates a new "soft" instance of <code>{@link org.assertj.assertions.generator.data.ArtWorkAssert}</code>.
+   * Creates a new "soft" instance of <code>{@link ArtWorkAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created "soft" assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public org.assertj.assertions.generator.data.ArtWorkAssert assertThat(org.assertj.assertions.generator.data.ArtWork actual) {
-    return proxy(org.assertj.assertions.generator.data.ArtWorkAssert.class, org.assertj.assertions.generator.data.ArtWork.class, actual);
+  public ArtWorkAssert assertThat(ArtWork actual) {
+    return proxy(ArtWorkAssert.class, ArtWork.class, actual);
   }
 
   /**
-   * Creates a new "soft" instance of <code>{@link org.assertj.assertions.generator.data.MovieAssert}</code>.
+   * Creates a new "soft" instance of <code>{@link MovieAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created "soft" assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public org.assertj.assertions.generator.data.MovieAssert assertThat(org.assertj.assertions.generator.data.Movie actual) {
-    return proxy(org.assertj.assertions.generator.data.MovieAssert.class, org.assertj.assertions.generator.data.Movie.class, actual);
+  public MovieAssert assertThat(Movie actual) {
+    return proxy(MovieAssert.class, Movie.class, actual);
   }
 
   /**
-   * Creates a new "soft" instance of <code>{@link org.assertj.assertions.generator.data.MoviePublicCategoryAssert}</code>.
+   * Creates a new "soft" instance of <code>{@link MoviePublicCategoryAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created "soft" assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public org.assertj.assertions.generator.data.MoviePublicCategoryAssert assertThat(org.assertj.assertions.generator.data.Movie.PublicCategory actual) {
-    return proxy(org.assertj.assertions.generator.data.MoviePublicCategoryAssert.class, org.assertj.assertions.generator.data.Movie.PublicCategory.class, actual);
+  public MoviePublicCategoryAssert assertThat(Movie.PublicCategory actual) {
+    return proxy(MoviePublicCategoryAssert.class, Movie.PublicCategory.class, actual);
   }
 
   /**
-   * Creates a new "soft" instance of <code>{@link org.assertj.assertions.generator.data.NameAssert}</code>.
+   * Creates a new "soft" instance of <code>{@link NameAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created "soft" assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public org.assertj.assertions.generator.data.NameAssert assertThat(org.assertj.assertions.generator.data.Name actual) {
-    return proxy(org.assertj.assertions.generator.data.NameAssert.class, org.assertj.assertions.generator.data.Name.class, actual);
+  public NameAssert assertThat(Name actual) {
+    return proxy(NameAssert.class, Name.class, actual);
   }
 
   /**
-   * Creates a new "soft" instance of <code>{@link org.assertj.assertions.generator.data.TreeEnumAssert}</code>.
+   * Creates a new "soft" instance of <code>{@link TreeEnumAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created "soft" assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public org.assertj.assertions.generator.data.TreeEnumAssert assertThat(org.assertj.assertions.generator.data.TreeEnum actual) {
-    return proxy(org.assertj.assertions.generator.data.TreeEnumAssert.class, org.assertj.assertions.generator.data.TreeEnum.class, actual);
+  public TreeEnumAssert assertThat(TreeEnum actual) {
+    return proxy(TreeEnumAssert.class, TreeEnum.class, actual);
   }
 
   /**
-   * Creates a new "soft" instance of <code>{@link org.assertj.assertions.generator.data.lotr.RaceAssert}</code>.
+   * Creates a new "soft" instance of <code>{@link RaceAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created "soft" assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public org.assertj.assertions.generator.data.lotr.RaceAssert assertThat(org.assertj.assertions.generator.data.lotr.Race actual) {
-    return proxy(org.assertj.assertions.generator.data.lotr.RaceAssert.class, org.assertj.assertions.generator.data.lotr.Race.class, actual);
+  public RaceAssert assertThat(Race actual) {
+    return proxy(RaceAssert.class, Race.class, actual);
   }
 
   /**
-   * Creates a new "soft" instance of <code>{@link org.assertj.assertions.generator.data.lotr.RingAssert}</code>.
+   * Creates a new "soft" instance of <code>{@link RingAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created "soft" assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public org.assertj.assertions.generator.data.lotr.RingAssert assertThat(org.assertj.assertions.generator.data.lotr.Ring actual) {
-    return proxy(org.assertj.assertions.generator.data.lotr.RingAssert.class, org.assertj.assertions.generator.data.lotr.Ring.class, actual);
+  public RingAssert assertThat(Ring actual) {
+    return proxy(RingAssert.class, Ring.class, actual);
   }
 
   /**
-   * Creates a new "soft" instance of <code>{@link org.assertj.assertions.generator.data.lotr.TolkienCharacterAssert}</code>.
+   * Creates a new "soft" instance of <code>{@link TolkienCharacterAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created "soft" assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public org.assertj.assertions.generator.data.lotr.TolkienCharacterAssert assertThat(org.assertj.assertions.generator.data.lotr.TolkienCharacter actual) {
-    return proxy(org.assertj.assertions.generator.data.lotr.TolkienCharacterAssert.class, org.assertj.assertions.generator.data.lotr.TolkienCharacter.class, actual);
+  public TolkienCharacterAssert assertThat(TolkienCharacter actual) {
+    return proxy(TolkienCharacterAssert.class, TolkienCharacter.class, actual);
   }
 
   /**
-   * Creates a new "soft" instance of <code>{@link org.assertj.assertions.generator.data.nba.PlayerAssert}</code>.
+   * Creates a new "soft" instance of <code>{@link PlayerAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created "soft" assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public org.assertj.assertions.generator.data.nba.PlayerAssert assertThat(org.assertj.assertions.generator.data.nba.Player actual) {
-    return proxy(org.assertj.assertions.generator.data.nba.PlayerAssert.class, org.assertj.assertions.generator.data.nba.Player.class, actual);
+  public PlayerAssert assertThat(Player actual) {
+    return proxy(PlayerAssert.class, Player.class, actual);
   }
 
   @Override
diff --git a/src/test/resources/BDDSoftAssertions.expected.txt b/src/test/resources/BDDSoftAssertions.expected.txt
index bb70462e..bbb069af 100644
--- a/src/test/resources/BDDSoftAssertions.expected.txt
+++ b/src/test/resources/BDDSoftAssertions.expected.txt
@@ -1,5 +1,23 @@
 package org.assertj.assertions.generator.data;
 
+import org.assertj.assertions.generator.data.ArtWork;
+import org.assertj.assertions.generator.data.ArtWorkAssert;
+import org.assertj.assertions.generator.data.Movie;
+import org.assertj.assertions.generator.data.MovieAssert;
+import org.assertj.assertions.generator.data.MoviePublicCategoryAssert;
+import org.assertj.assertions.generator.data.Name;
+import org.assertj.assertions.generator.data.NameAssert;
+import org.assertj.assertions.generator.data.TreeEnum;
+import org.assertj.assertions.generator.data.TreeEnumAssert;
+import org.assertj.assertions.generator.data.lotr.Race;
+import org.assertj.assertions.generator.data.lotr.RaceAssert;
+import org.assertj.assertions.generator.data.lotr.Ring;
+import org.assertj.assertions.generator.data.lotr.RingAssert;
+import org.assertj.assertions.generator.data.lotr.TolkienCharacter;
+import org.assertj.assertions.generator.data.lotr.TolkienCharacterAssert;
+import org.assertj.assertions.generator.data.nba.Player;
+import org.assertj.assertions.generator.data.nba.PlayerAssert;
+
 /**
  * Entry point for BDD soft assertions of different data types.
  */
@@ -7,102 +25,102 @@ package org.assertj.assertions.generator.data;
 public class BDDSoftAssertions extends org.assertj.core.api.BDDSoftAssertions {
 
   /**
-   * Creates a new "soft" instance of <code>{@link org.assertj.assertions.generator.data.ArtWorkAssert}</code>.
+   * Creates a new "soft" instance of <code>{@link ArtWorkAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created "soft" assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public org.assertj.assertions.generator.data.ArtWorkAssert then(org.assertj.assertions.generator.data.ArtWork actual) {
-    return proxy(org.assertj.assertions.generator.data.ArtWorkAssert.class, org.assertj.assertions.generator.data.ArtWork.class, actual);
+  public ArtWorkAssert then(ArtWork actual) {
+    return proxy(ArtWorkAssert.class, ArtWork.class, actual);
   }
 
   /**
-   * Creates a new "soft" instance of <code>{@link org.assertj.assertions.generator.data.MovieAssert}</code>.
+   * Creates a new "soft" instance of <code>{@link MovieAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created "soft" assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public org.assertj.assertions.generator.data.MovieAssert then(org.assertj.assertions.generator.data.Movie actual) {
-    return proxy(org.assertj.assertions.generator.data.MovieAssert.class, org.assertj.assertions.generator.data.Movie.class, actual);
+  public MovieAssert then(Movie actual) {
+    return proxy(MovieAssert.class, Movie.class, actual);
   }
 
   /**
-   * Creates a new "soft" instance of <code>{@link org.assertj.assertions.generator.data.MoviePublicCategoryAssert}</code>.
+   * Creates a new "soft" instance of <code>{@link MoviePublicCategoryAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created "soft" assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public org.assertj.assertions.generator.data.MoviePublicCategoryAssert then(org.assertj.assertions.generator.data.Movie.PublicCategory actual) {
-    return proxy(org.assertj.assertions.generator.data.MoviePublicCategoryAssert.class, org.assertj.assertions.generator.data.Movie.PublicCategory.class, actual);
+  public MoviePublicCategoryAssert then(Movie.PublicCategory actual) {
+    return proxy(MoviePublicCategoryAssert.class, Movie.PublicCategory.class, actual);
   }
 
   /**
-   * Creates a new "soft" instance of <code>{@link org.assertj.assertions.generator.data.NameAssert}</code>.
+   * Creates a new "soft" instance of <code>{@link NameAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created "soft" assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public org.assertj.assertions.generator.data.NameAssert then(org.assertj.assertions.generator.data.Name actual) {
-    return proxy(org.assertj.assertions.generator.data.NameAssert.class, org.assertj.assertions.generator.data.Name.class, actual);
+  public NameAssert then(Name actual) {
+    return proxy(NameAssert.class, Name.class, actual);
   }
 
   /**
-   * Creates a new "soft" instance of <code>{@link org.assertj.assertions.generator.data.TreeEnumAssert}</code>.
+   * Creates a new "soft" instance of <code>{@link TreeEnumAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created "soft" assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public org.assertj.assertions.generator.data.TreeEnumAssert then(org.assertj.assertions.generator.data.TreeEnum actual) {
-    return proxy(org.assertj.assertions.generator.data.TreeEnumAssert.class, org.assertj.assertions.generator.data.TreeEnum.class, actual);
+  public TreeEnumAssert then(TreeEnum actual) {
+    return proxy(TreeEnumAssert.class, TreeEnum.class, actual);
   }
 
   /**
-   * Creates a new "soft" instance of <code>{@link org.assertj.assertions.generator.data.lotr.RaceAssert}</code>.
+   * Creates a new "soft" instance of <code>{@link RaceAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created "soft" assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public org.assertj.assertions.generator.data.lotr.RaceAssert then(org.assertj.assertions.generator.data.lotr.Race actual) {
-    return proxy(org.assertj.assertions.generator.data.lotr.RaceAssert.class, org.assertj.assertions.generator.data.lotr.Race.class, actual);
+  public RaceAssert then(Race actual) {
+    return proxy(RaceAssert.class, Race.class, actual);
   }
 
   /**
-   * Creates a new "soft" instance of <code>{@link org.assertj.assertions.generator.data.lotr.RingAssert}</code>.
+   * Creates a new "soft" instance of <code>{@link RingAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created "soft" assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public org.assertj.assertions.generator.data.lotr.RingAssert then(org.assertj.assertions.generator.data.lotr.Ring actual) {
-    return proxy(org.assertj.assertions.generator.data.lotr.RingAssert.class, org.assertj.assertions.generator.data.lotr.Ring.class, actual);
+  public RingAssert then(Ring actual) {
+    return proxy(RingAssert.class, Ring.class, actual);
   }
 
   /**
-   * Creates a new "soft" instance of <code>{@link org.assertj.assertions.generator.data.lotr.TolkienCharacterAssert}</code>.
+   * Creates a new "soft" instance of <code>{@link TolkienCharacterAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created "soft" assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public org.assertj.assertions.generator.data.lotr.TolkienCharacterAssert then(org.assertj.assertions.generator.data.lotr.TolkienCharacter actual) {
-    return proxy(org.assertj.assertions.generator.data.lotr.TolkienCharacterAssert.class, org.assertj.assertions.generator.data.lotr.TolkienCharacter.class, actual);
+  public TolkienCharacterAssert then(TolkienCharacter actual) {
+    return proxy(TolkienCharacterAssert.class, TolkienCharacter.class, actual);
   }
 
   /**
-   * Creates a new "soft" instance of <code>{@link org.assertj.assertions.generator.data.nba.PlayerAssert}</code>.
+   * Creates a new "soft" instance of <code>{@link PlayerAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created "soft" assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public org.assertj.assertions.generator.data.nba.PlayerAssert then(org.assertj.assertions.generator.data.nba.Player actual) {
-    return proxy(org.assertj.assertions.generator.data.nba.PlayerAssert.class, org.assertj.assertions.generator.data.nba.Player.class, actual);
+  public PlayerAssert then(Player actual) {
+    return proxy(PlayerAssert.class, Player.class, actual);
   }
 
 }
diff --git a/src/test/resources/BddAssertions.expected.txt b/src/test/resources/BddAssertions.expected.txt
index 8d100bc0..43f768ac 100644
--- a/src/test/resources/BddAssertions.expected.txt
+++ b/src/test/resources/BddAssertions.expected.txt
@@ -1,5 +1,23 @@
 package org.assertj.assertions.generator.data;
 
+import org.assertj.assertions.generator.data.ArtWork;
+import org.assertj.assertions.generator.data.ArtWorkAssert;
+import org.assertj.assertions.generator.data.Movie;
+import org.assertj.assertions.generator.data.MovieAssert;
+import org.assertj.assertions.generator.data.MoviePublicCategoryAssert;
+import org.assertj.assertions.generator.data.Name;
+import org.assertj.assertions.generator.data.NameAssert;
+import org.assertj.assertions.generator.data.TreeEnum;
+import org.assertj.assertions.generator.data.TreeEnumAssert;
+import org.assertj.assertions.generator.data.lotr.Race;
+import org.assertj.assertions.generator.data.lotr.RaceAssert;
+import org.assertj.assertions.generator.data.lotr.Ring;
+import org.assertj.assertions.generator.data.lotr.RingAssert;
+import org.assertj.assertions.generator.data.lotr.TolkienCharacter;
+import org.assertj.assertions.generator.data.lotr.TolkienCharacterAssert;
+import org.assertj.assertions.generator.data.nba.Player;
+import org.assertj.assertions.generator.data.nba.PlayerAssert;
+
 /**
  * Entry point for BDD assertions of different data types.
  */
@@ -7,102 +25,102 @@ package org.assertj.assertions.generator.data;
 public class BddAssertions {
 
   /**
-   * Creates a new instance of <code>{@link org.assertj.assertions.generator.data.ArtWorkAssert}</code>.
+   * Creates a new instance of <code>{@link ArtWorkAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public static org.assertj.assertions.generator.data.ArtWorkAssert then(org.assertj.assertions.generator.data.ArtWork actual) {
-    return new org.assertj.assertions.generator.data.ArtWorkAssert(actual);
+  public static ArtWorkAssert then(ArtWork actual) {
+    return new ArtWorkAssert(actual);
   }
 
   /**
-   * Creates a new instance of <code>{@link org.assertj.assertions.generator.data.MovieAssert}</code>.
+   * Creates a new instance of <code>{@link MovieAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public static org.assertj.assertions.generator.data.MovieAssert then(org.assertj.assertions.generator.data.Movie actual) {
-    return new org.assertj.assertions.generator.data.MovieAssert(actual);
+  public static MovieAssert then(Movie actual) {
+    return new MovieAssert(actual);
   }
 
   /**
-   * Creates a new instance of <code>{@link org.assertj.assertions.generator.data.MoviePublicCategoryAssert}</code>.
+   * Creates a new instance of <code>{@link MoviePublicCategoryAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public static org.assertj.assertions.generator.data.MoviePublicCategoryAssert then(org.assertj.assertions.generator.data.Movie.PublicCategory actual) {
-    return new org.assertj.assertions.generator.data.MoviePublicCategoryAssert(actual);
+  public static MoviePublicCategoryAssert then(Movie.PublicCategory actual) {
+    return new MoviePublicCategoryAssert(actual);
   }
 
   /**
-   * Creates a new instance of <code>{@link org.assertj.assertions.generator.data.NameAssert}</code>.
+   * Creates a new instance of <code>{@link NameAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public static org.assertj.assertions.generator.data.NameAssert then(org.assertj.assertions.generator.data.Name actual) {
-    return new org.assertj.assertions.generator.data.NameAssert(actual);
+  public static NameAssert then(Name actual) {
+    return new NameAssert(actual);
   }
 
   /**
-   * Creates a new instance of <code>{@link org.assertj.assertions.generator.data.TreeEnumAssert}</code>.
+   * Creates a new instance of <code>{@link TreeEnumAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public static org.assertj.assertions.generator.data.TreeEnumAssert then(org.assertj.assertions.generator.data.TreeEnum actual) {
-    return new org.assertj.assertions.generator.data.TreeEnumAssert(actual);
+  public static TreeEnumAssert then(TreeEnum actual) {
+    return new TreeEnumAssert(actual);
   }
 
   /**
-   * Creates a new instance of <code>{@link org.assertj.assertions.generator.data.lotr.RaceAssert}</code>.
+   * Creates a new instance of <code>{@link RaceAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public static org.assertj.assertions.generator.data.lotr.RaceAssert then(org.assertj.assertions.generator.data.lotr.Race actual) {
-    return new org.assertj.assertions.generator.data.lotr.RaceAssert(actual);
+  public static RaceAssert then(Race actual) {
+    return new RaceAssert(actual);
   }
 
   /**
-   * Creates a new instance of <code>{@link org.assertj.assertions.generator.data.lotr.RingAssert}</code>.
+   * Creates a new instance of <code>{@link RingAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public static org.assertj.assertions.generator.data.lotr.RingAssert then(org.assertj.assertions.generator.data.lotr.Ring actual) {
-    return new org.assertj.assertions.generator.data.lotr.RingAssert(actual);
+  public static RingAssert then(Ring actual) {
+    return new RingAssert(actual);
   }
 
   /**
-   * Creates a new instance of <code>{@link org.assertj.assertions.generator.data.lotr.TolkienCharacterAssert}</code>.
+   * Creates a new instance of <code>{@link TolkienCharacterAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public static org.assertj.assertions.generator.data.lotr.TolkienCharacterAssert then(org.assertj.assertions.generator.data.lotr.TolkienCharacter actual) {
-    return new org.assertj.assertions.generator.data.lotr.TolkienCharacterAssert(actual);
+  public static TolkienCharacterAssert then(TolkienCharacter actual) {
+    return new TolkienCharacterAssert(actual);
   }
 
   /**
-   * Creates a new instance of <code>{@link org.assertj.assertions.generator.data.nba.PlayerAssert}</code>.
+   * Creates a new instance of <code>{@link PlayerAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public static org.assertj.assertions.generator.data.nba.PlayerAssert then(org.assertj.assertions.generator.data.nba.Player actual) {
-    return new org.assertj.assertions.generator.data.nba.PlayerAssert(actual);
+  public static PlayerAssert then(Player actual) {
+    return new PlayerAssert(actual);
   }
 
   /**
diff --git a/src/test/resources/JUnitBDDSoftAssertions.expected.txt b/src/test/resources/JUnitBDDSoftAssertions.expected.txt
index 2d2f9571..29458a11 100644
--- a/src/test/resources/JUnitBDDSoftAssertions.expected.txt
+++ b/src/test/resources/JUnitBDDSoftAssertions.expected.txt
@@ -1,5 +1,23 @@
 package org.assertj.assertions.generator.data;
 
+import org.assertj.assertions.generator.data.ArtWork;
+import org.assertj.assertions.generator.data.ArtWorkAssert;
+import org.assertj.assertions.generator.data.Movie;
+import org.assertj.assertions.generator.data.MovieAssert;
+import org.assertj.assertions.generator.data.MoviePublicCategoryAssert;
+import org.assertj.assertions.generator.data.Name;
+import org.assertj.assertions.generator.data.NameAssert;
+import org.assertj.assertions.generator.data.TreeEnum;
+import org.assertj.assertions.generator.data.TreeEnumAssert;
+import org.assertj.assertions.generator.data.lotr.Race;
+import org.assertj.assertions.generator.data.lotr.RaceAssert;
+import org.assertj.assertions.generator.data.lotr.Ring;
+import org.assertj.assertions.generator.data.lotr.RingAssert;
+import org.assertj.assertions.generator.data.lotr.TolkienCharacter;
+import org.assertj.assertions.generator.data.lotr.TolkienCharacterAssert;
+import org.assertj.assertions.generator.data.nba.Player;
+import org.assertj.assertions.generator.data.nba.PlayerAssert;
+
 /**
  * Like {@link BDDSoftAssertions} but as a junit rule that takes care of calling
  * {@link SoftAssertions#assertAll() assertAll()} at the end of each test.
@@ -22,102 +40,102 @@ package org.assertj.assertions.generator.data;
 public class JUnitBDDSoftAssertions extends org.assertj.core.api.JUnitBDDSoftAssertions {
 
   /**
-   * Creates a new "soft" instance of <code>{@link org.assertj.assertions.generator.data.ArtWorkAssert}</code>.
+   * Creates a new "soft" instance of <code>{@link ArtWorkAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created "soft" assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public org.assertj.assertions.generator.data.ArtWorkAssert then(org.assertj.assertions.generator.data.ArtWork actual) {
-    return proxy(org.assertj.assertions.generator.data.ArtWorkAssert.class, org.assertj.assertions.generator.data.ArtWork.class, actual);
+  public ArtWorkAssert then(ArtWork actual) {
+    return proxy(ArtWorkAssert.class, ArtWork.class, actual);
   }
 
   /**
-   * Creates a new "soft" instance of <code>{@link org.assertj.assertions.generator.data.MovieAssert}</code>.
+   * Creates a new "soft" instance of <code>{@link MovieAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created "soft" assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public org.assertj.assertions.generator.data.MovieAssert then(org.assertj.assertions.generator.data.Movie actual) {
-    return proxy(org.assertj.assertions.generator.data.MovieAssert.class, org.assertj.assertions.generator.data.Movie.class, actual);
+  public MovieAssert then(Movie actual) {
+    return proxy(MovieAssert.class, Movie.class, actual);
   }
 
   /**
-   * Creates a new "soft" instance of <code>{@link org.assertj.assertions.generator.data.MoviePublicCategoryAssert}</code>.
+   * Creates a new "soft" instance of <code>{@link MoviePublicCategoryAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created "soft" assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public org.assertj.assertions.generator.data.MoviePublicCategoryAssert then(org.assertj.assertions.generator.data.Movie.PublicCategory actual) {
-    return proxy(org.assertj.assertions.generator.data.MoviePublicCategoryAssert.class, org.assertj.assertions.generator.data.Movie.PublicCategory.class, actual);
+  public MoviePublicCategoryAssert then(Movie.PublicCategory actual) {
+    return proxy(MoviePublicCategoryAssert.class, Movie.PublicCategory.class, actual);
   }
 
   /**
-   * Creates a new "soft" instance of <code>{@link org.assertj.assertions.generator.data.NameAssert}</code>.
+   * Creates a new "soft" instance of <code>{@link NameAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created "soft" assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public org.assertj.assertions.generator.data.NameAssert then(org.assertj.assertions.generator.data.Name actual) {
-    return proxy(org.assertj.assertions.generator.data.NameAssert.class, org.assertj.assertions.generator.data.Name.class, actual);
+  public NameAssert then(Name actual) {
+    return proxy(NameAssert.class, Name.class, actual);
   }
 
   /**
-   * Creates a new "soft" instance of <code>{@link org.assertj.assertions.generator.data.TreeEnumAssert}</code>.
+   * Creates a new "soft" instance of <code>{@link TreeEnumAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created "soft" assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public org.assertj.assertions.generator.data.TreeEnumAssert then(org.assertj.assertions.generator.data.TreeEnum actual) {
-    return proxy(org.assertj.assertions.generator.data.TreeEnumAssert.class, org.assertj.assertions.generator.data.TreeEnum.class, actual);
+  public TreeEnumAssert then(TreeEnum actual) {
+    return proxy(TreeEnumAssert.class, TreeEnum.class, actual);
   }
 
   /**
-   * Creates a new "soft" instance of <code>{@link org.assertj.assertions.generator.data.lotr.RaceAssert}</code>.
+   * Creates a new "soft" instance of <code>{@link RaceAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created "soft" assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public org.assertj.assertions.generator.data.lotr.RaceAssert then(org.assertj.assertions.generator.data.lotr.Race actual) {
-    return proxy(org.assertj.assertions.generator.data.lotr.RaceAssert.class, org.assertj.assertions.generator.data.lotr.Race.class, actual);
+  public RaceAssert then(Race actual) {
+    return proxy(RaceAssert.class, Race.class, actual);
   }
 
   /**
-   * Creates a new "soft" instance of <code>{@link org.assertj.assertions.generator.data.lotr.RingAssert}</code>.
+   * Creates a new "soft" instance of <code>{@link RingAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created "soft" assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public org.assertj.assertions.generator.data.lotr.RingAssert then(org.assertj.assertions.generator.data.lotr.Ring actual) {
-    return proxy(org.assertj.assertions.generator.data.lotr.RingAssert.class, org.assertj.assertions.generator.data.lotr.Ring.class, actual);
+  public RingAssert then(Ring actual) {
+    return proxy(RingAssert.class, Ring.class, actual);
   }
 
   /**
-   * Creates a new "soft" instance of <code>{@link org.assertj.assertions.generator.data.lotr.TolkienCharacterAssert}</code>.
+   * Creates a new "soft" instance of <code>{@link TolkienCharacterAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created "soft" assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public org.assertj.assertions.generator.data.lotr.TolkienCharacterAssert then(org.assertj.assertions.generator.data.lotr.TolkienCharacter actual) {
-    return proxy(org.assertj.assertions.generator.data.lotr.TolkienCharacterAssert.class, org.assertj.assertions.generator.data.lotr.TolkienCharacter.class, actual);
+  public TolkienCharacterAssert then(TolkienCharacter actual) {
+    return proxy(TolkienCharacterAssert.class, TolkienCharacter.class, actual);
   }
 
   /**
-   * Creates a new "soft" instance of <code>{@link org.assertj.assertions.generator.data.nba.PlayerAssert}</code>.
+   * Creates a new "soft" instance of <code>{@link PlayerAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created "soft" assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public org.assertj.assertions.generator.data.nba.PlayerAssert then(org.assertj.assertions.generator.data.nba.Player actual) {
-    return proxy(org.assertj.assertions.generator.data.nba.PlayerAssert.class, org.assertj.assertions.generator.data.nba.Player.class, actual);
+  public PlayerAssert then(Player actual) {
+    return proxy(PlayerAssert.class, Player.class, actual);
   }
 
 }
diff --git a/src/test/resources/JUnitSoftAssertions.expected.txt b/src/test/resources/JUnitSoftAssertions.expected.txt
index 681cbd66..8cfe0fab 100644
--- a/src/test/resources/JUnitSoftAssertions.expected.txt
+++ b/src/test/resources/JUnitSoftAssertions.expected.txt
@@ -1,5 +1,23 @@
 package org.assertj.assertions.generator.data;
 
+import org.assertj.assertions.generator.data.ArtWork;
+import org.assertj.assertions.generator.data.ArtWorkAssert;
+import org.assertj.assertions.generator.data.Movie;
+import org.assertj.assertions.generator.data.MovieAssert;
+import org.assertj.assertions.generator.data.MoviePublicCategoryAssert;
+import org.assertj.assertions.generator.data.Name;
+import org.assertj.assertions.generator.data.NameAssert;
+import org.assertj.assertions.generator.data.TreeEnum;
+import org.assertj.assertions.generator.data.TreeEnumAssert;
+import org.assertj.assertions.generator.data.lotr.Race;
+import org.assertj.assertions.generator.data.lotr.RaceAssert;
+import org.assertj.assertions.generator.data.lotr.Ring;
+import org.assertj.assertions.generator.data.lotr.RingAssert;
+import org.assertj.assertions.generator.data.lotr.TolkienCharacter;
+import org.assertj.assertions.generator.data.lotr.TolkienCharacterAssert;
+import org.assertj.assertions.generator.data.nba.Player;
+import org.assertj.assertions.generator.data.nba.PlayerAssert;
+
 /**
  * Like {@link SoftAssertions} but as a junit rule that takes care of calling
  * {@link SoftAssertions#assertAll() assertAll()} at the end of each test.
@@ -22,102 +40,102 @@ package org.assertj.assertions.generator.data;
 public class JUnitSoftAssertions extends org.assertj.core.api.JUnitSoftAssertions {
 
   /**
-   * Creates a new "soft" instance of <code>{@link org.assertj.assertions.generator.data.ArtWorkAssert}</code>.
+   * Creates a new "soft" instance of <code>{@link ArtWorkAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created "soft" assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public org.assertj.assertions.generator.data.ArtWorkAssert assertThat(org.assertj.assertions.generator.data.ArtWork actual) {
-    return proxy(org.assertj.assertions.generator.data.ArtWorkAssert.class, org.assertj.assertions.generator.data.ArtWork.class, actual);
+  public ArtWorkAssert assertThat(ArtWork actual) {
+    return proxy(ArtWorkAssert.class, ArtWork.class, actual);
   }
 
   /**
-   * Creates a new "soft" instance of <code>{@link org.assertj.assertions.generator.data.MovieAssert}</code>.
+   * Creates a new "soft" instance of <code>{@link MovieAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created "soft" assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public org.assertj.assertions.generator.data.MovieAssert assertThat(org.assertj.assertions.generator.data.Movie actual) {
-    return proxy(org.assertj.assertions.generator.data.MovieAssert.class, org.assertj.assertions.generator.data.Movie.class, actual);
+  public MovieAssert assertThat(Movie actual) {
+    return proxy(MovieAssert.class, Movie.class, actual);
   }
 
   /**
-   * Creates a new "soft" instance of <code>{@link org.assertj.assertions.generator.data.MoviePublicCategoryAssert}</code>.
+   * Creates a new "soft" instance of <code>{@link MoviePublicCategoryAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created "soft" assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public org.assertj.assertions.generator.data.MoviePublicCategoryAssert assertThat(org.assertj.assertions.generator.data.Movie.PublicCategory actual) {
-    return proxy(org.assertj.assertions.generator.data.MoviePublicCategoryAssert.class, org.assertj.assertions.generator.data.Movie.PublicCategory.class, actual);
+  public MoviePublicCategoryAssert assertThat(Movie.PublicCategory actual) {
+    return proxy(MoviePublicCategoryAssert.class, Movie.PublicCategory.class, actual);
   }
 
   /**
-   * Creates a new "soft" instance of <code>{@link org.assertj.assertions.generator.data.NameAssert}</code>.
+   * Creates a new "soft" instance of <code>{@link NameAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created "soft" assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public org.assertj.assertions.generator.data.NameAssert assertThat(org.assertj.assertions.generator.data.Name actual) {
-    return proxy(org.assertj.assertions.generator.data.NameAssert.class, org.assertj.assertions.generator.data.Name.class, actual);
+  public NameAssert assertThat(Name actual) {
+    return proxy(NameAssert.class, Name.class, actual);
   }
 
   /**
-   * Creates a new "soft" instance of <code>{@link org.assertj.assertions.generator.data.TreeEnumAssert}</code>.
+   * Creates a new "soft" instance of <code>{@link TreeEnumAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created "soft" assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public org.assertj.assertions.generator.data.TreeEnumAssert assertThat(org.assertj.assertions.generator.data.TreeEnum actual) {
-    return proxy(org.assertj.assertions.generator.data.TreeEnumAssert.class, org.assertj.assertions.generator.data.TreeEnum.class, actual);
+  public TreeEnumAssert assertThat(TreeEnum actual) {
+    return proxy(TreeEnumAssert.class, TreeEnum.class, actual);
   }
 
   /**
-   * Creates a new "soft" instance of <code>{@link org.assertj.assertions.generator.data.lotr.RaceAssert}</code>.
+   * Creates a new "soft" instance of <code>{@link RaceAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created "soft" assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public org.assertj.assertions.generator.data.lotr.RaceAssert assertThat(org.assertj.assertions.generator.data.lotr.Race actual) {
-    return proxy(org.assertj.assertions.generator.data.lotr.RaceAssert.class, org.assertj.assertions.generator.data.lotr.Race.class, actual);
+  public RaceAssert assertThat(Race actual) {
+    return proxy(RaceAssert.class, Race.class, actual);
   }
 
   /**
-   * Creates a new "soft" instance of <code>{@link org.assertj.assertions.generator.data.lotr.RingAssert}</code>.
+   * Creates a new "soft" instance of <code>{@link RingAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created "soft" assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public org.assertj.assertions.generator.data.lotr.RingAssert assertThat(org.assertj.assertions.generator.data.lotr.Ring actual) {
-    return proxy(org.assertj.assertions.generator.data.lotr.RingAssert.class, org.assertj.assertions.generator.data.lotr.Ring.class, actual);
+  public RingAssert assertThat(Ring actual) {
+    return proxy(RingAssert.class, Ring.class, actual);
   }
 
   /**
-   * Creates a new "soft" instance of <code>{@link org.assertj.assertions.generator.data.lotr.TolkienCharacterAssert}</code>.
+   * Creates a new "soft" instance of <code>{@link TolkienCharacterAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created "soft" assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public org.assertj.assertions.generator.data.lotr.TolkienCharacterAssert assertThat(org.assertj.assertions.generator.data.lotr.TolkienCharacter actual) {
-    return proxy(org.assertj.assertions.generator.data.lotr.TolkienCharacterAssert.class, org.assertj.assertions.generator.data.lotr.TolkienCharacter.class, actual);
+  public TolkienCharacterAssert assertThat(TolkienCharacter actual) {
+    return proxy(TolkienCharacterAssert.class, TolkienCharacter.class, actual);
   }
 
   /**
-   * Creates a new "soft" instance of <code>{@link org.assertj.assertions.generator.data.nba.PlayerAssert}</code>.
+   * Creates a new "soft" instance of <code>{@link PlayerAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created "soft" assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public org.assertj.assertions.generator.data.nba.PlayerAssert assertThat(org.assertj.assertions.generator.data.nba.Player actual) {
-    return proxy(org.assertj.assertions.generator.data.nba.PlayerAssert.class, org.assertj.assertions.generator.data.nba.Player.class, actual);
+  public PlayerAssert assertThat(Player actual) {
+    return proxy(PlayerAssert.class, Player.class, actual);
   }
 
 }
diff --git a/src/test/resources/MyAssertions.expected.txt b/src/test/resources/MyAssertions.expected.txt
index 4b9d689c..1f5ca342 100644
--- a/src/test/resources/MyAssertions.expected.txt
+++ b/src/test/resources/MyAssertions.expected.txt
@@ -1,5 +1,8 @@
 package org.assertj.assertions.generator.data.lotr;
 
+import org.assertj.assertions.generator.data.lotr.Ring;
+import org.assertj.assertions.generator.data.lotr.RingAssert;
+
 /**
  * Entry point for assertions of different data types. Each method in this class is a static factory for the
  * type-specific assertion objects.
@@ -8,14 +11,14 @@ package org.assertj.assertions.generator.data.lotr;
 public class MyAssertions {
 
   /**
-   * Creates a new instance of <code>{@link org.assertj.assertions.generator.data.lotr.RingAssert}</code>.
+   * Creates a new instance of <code>{@link RingAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public static org.assertj.assertions.generator.data.lotr.RingAssert assertThat(org.assertj.assertions.generator.data.lotr.Ring actual) {
-    return new org.assertj.assertions.generator.data.lotr.RingAssert(actual);
+  public static RingAssert assertThat(Ring actual) {
+    return new RingAssert(actual);
   }
 
   /**
diff --git a/src/test/resources/SoftAssertions.expected.txt b/src/test/resources/SoftAssertions.expected.txt
index ce41375f..e246adb5 100644
--- a/src/test/resources/SoftAssertions.expected.txt
+++ b/src/test/resources/SoftAssertions.expected.txt
@@ -1,5 +1,23 @@
 package org.assertj.assertions.generator.data;
 
+import org.assertj.assertions.generator.data.ArtWork;
+import org.assertj.assertions.generator.data.ArtWorkAssert;
+import org.assertj.assertions.generator.data.Movie;
+import org.assertj.assertions.generator.data.MovieAssert;
+import org.assertj.assertions.generator.data.MoviePublicCategoryAssert;
+import org.assertj.assertions.generator.data.Name;
+import org.assertj.assertions.generator.data.NameAssert;
+import org.assertj.assertions.generator.data.TreeEnum;
+import org.assertj.assertions.generator.data.TreeEnumAssert;
+import org.assertj.assertions.generator.data.lotr.Race;
+import org.assertj.assertions.generator.data.lotr.RaceAssert;
+import org.assertj.assertions.generator.data.lotr.Ring;
+import org.assertj.assertions.generator.data.lotr.RingAssert;
+import org.assertj.assertions.generator.data.lotr.TolkienCharacter;
+import org.assertj.assertions.generator.data.lotr.TolkienCharacterAssert;
+import org.assertj.assertions.generator.data.nba.Player;
+import org.assertj.assertions.generator.data.nba.PlayerAssert;
+
 /**
  * Entry point for soft assertions of different data types.
  */
@@ -7,102 +25,102 @@ package org.assertj.assertions.generator.data;
 public class SoftAssertions extends org.assertj.core.api.SoftAssertions {
 
   /**
-   * Creates a new "soft" instance of <code>{@link org.assertj.assertions.generator.data.ArtWorkAssert}</code>.
+   * Creates a new "soft" instance of <code>{@link ArtWorkAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created "soft" assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public org.assertj.assertions.generator.data.ArtWorkAssert assertThat(org.assertj.assertions.generator.data.ArtWork actual) {
-    return proxy(org.assertj.assertions.generator.data.ArtWorkAssert.class, org.assertj.assertions.generator.data.ArtWork.class, actual);
+  public ArtWorkAssert assertThat(ArtWork actual) {
+    return proxy(ArtWorkAssert.class, ArtWork.class, actual);
   }
 
   /**
-   * Creates a new "soft" instance of <code>{@link org.assertj.assertions.generator.data.MovieAssert}</code>.
+   * Creates a new "soft" instance of <code>{@link MovieAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created "soft" assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public org.assertj.assertions.generator.data.MovieAssert assertThat(org.assertj.assertions.generator.data.Movie actual) {
-    return proxy(org.assertj.assertions.generator.data.MovieAssert.class, org.assertj.assertions.generator.data.Movie.class, actual);
+  public MovieAssert assertThat(Movie actual) {
+    return proxy(MovieAssert.class, Movie.class, actual);
   }
 
   /**
-   * Creates a new "soft" instance of <code>{@link org.assertj.assertions.generator.data.MoviePublicCategoryAssert}</code>.
+   * Creates a new "soft" instance of <code>{@link MoviePublicCategoryAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created "soft" assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public org.assertj.assertions.generator.data.MoviePublicCategoryAssert assertThat(org.assertj.assertions.generator.data.Movie.PublicCategory actual) {
-    return proxy(org.assertj.assertions.generator.data.MoviePublicCategoryAssert.class, org.assertj.assertions.generator.data.Movie.PublicCategory.class, actual);
+  public MoviePublicCategoryAssert assertThat(Movie.PublicCategory actual) {
+    return proxy(MoviePublicCategoryAssert.class, Movie.PublicCategory.class, actual);
   }
 
   /**
-   * Creates a new "soft" instance of <code>{@link org.assertj.assertions.generator.data.NameAssert}</code>.
+   * Creates a new "soft" instance of <code>{@link NameAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created "soft" assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public org.assertj.assertions.generator.data.NameAssert assertThat(org.assertj.assertions.generator.data.Name actual) {
-    return proxy(org.assertj.assertions.generator.data.NameAssert.class, org.assertj.assertions.generator.data.Name.class, actual);
+  public NameAssert assertThat(Name actual) {
+    return proxy(NameAssert.class, Name.class, actual);
   }
 
   /**
-   * Creates a new "soft" instance of <code>{@link org.assertj.assertions.generator.data.TreeEnumAssert}</code>.
+   * Creates a new "soft" instance of <code>{@link TreeEnumAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created "soft" assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public org.assertj.assertions.generator.data.TreeEnumAssert assertThat(org.assertj.assertions.generator.data.TreeEnum actual) {
-    return proxy(org.assertj.assertions.generator.data.TreeEnumAssert.class, org.assertj.assertions.generator.data.TreeEnum.class, actual);
+  public TreeEnumAssert assertThat(TreeEnum actual) {
+    return proxy(TreeEnumAssert.class, TreeEnum.class, actual);
   }
 
   /**
-   * Creates a new "soft" instance of <code>{@link org.assertj.assertions.generator.data.lotr.RaceAssert}</code>.
+   * Creates a new "soft" instance of <code>{@link RaceAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created "soft" assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public org.assertj.assertions.generator.data.lotr.RaceAssert assertThat(org.assertj.assertions.generator.data.lotr.Race actual) {
-    return proxy(org.assertj.assertions.generator.data.lotr.RaceAssert.class, org.assertj.assertions.generator.data.lotr.Race.class, actual);
+  public RaceAssert assertThat(Race actual) {
+    return proxy(RaceAssert.class, Race.class, actual);
   }
 
   /**
-   * Creates a new "soft" instance of <code>{@link org.assertj.assertions.generator.data.lotr.RingAssert}</code>.
+   * Creates a new "soft" instance of <code>{@link RingAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created "soft" assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public org.assertj.assertions.generator.data.lotr.RingAssert assertThat(org.assertj.assertions.generator.data.lotr.Ring actual) {
-    return proxy(org.assertj.assertions.generator.data.lotr.RingAssert.class, org.assertj.assertions.generator.data.lotr.Ring.class, actual);
+  public RingAssert assertThat(Ring actual) {
+    return proxy(RingAssert.class, Ring.class, actual);
   }
 
   /**
-   * Creates a new "soft" instance of <code>{@link org.assertj.assertions.generator.data.lotr.TolkienCharacterAssert}</code>.
+   * Creates a new "soft" instance of <code>{@link TolkienCharacterAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created "soft" assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public org.assertj.assertions.generator.data.lotr.TolkienCharacterAssert assertThat(org.assertj.assertions.generator.data.lotr.TolkienCharacter actual) {
-    return proxy(org.assertj.assertions.generator.data.lotr.TolkienCharacterAssert.class, org.assertj.assertions.generator.data.lotr.TolkienCharacter.class, actual);
+  public TolkienCharacterAssert assertThat(TolkienCharacter actual) {
+    return proxy(TolkienCharacterAssert.class, TolkienCharacter.class, actual);
   }
 
   /**
-   * Creates a new "soft" instance of <code>{@link org.assertj.assertions.generator.data.nba.PlayerAssert}</code>.
+   * Creates a new "soft" instance of <code>{@link PlayerAssert}</code>.
    *
    * @param actual the actual value.
    * @return the created "soft" assertion object.
    */
   @org.assertj.core.util.CheckReturnValue
-  public org.assertj.assertions.generator.data.nba.PlayerAssert assertThat(org.assertj.assertions.generator.data.nba.Player actual) {
-    return proxy(org.assertj.assertions.generator.data.nba.PlayerAssert.class, org.assertj.assertions.generator.data.nba.Player.class, actual);
+  public PlayerAssert assertThat(Player actual) {
+    return proxy(PlayerAssert.class, Player.class, actual);
   }
 
 }
diff --git a/src/test/resources/customtemplates/my_assertion_entry_point_class.txt b/src/test/resources/customtemplates/my_assertion_entry_point_class.txt
index fc210ab3..16fa4553 100644
--- a/src/test/resources/customtemplates/my_assertion_entry_point_class.txt
+++ b/src/test/resources/customtemplates/my_assertion_entry_point_class.txt
@@ -1,5 +1,6 @@
 package ${package};
 
+${imports}
 /**
  * Entry point for assertions of different data types. Each method in this class is a static factory for the
  * type-specific assertion objects.