diff --git a/code_gen/src/main/java/j2html_codegen/GeneratorUtil.java b/code_gen/src/main/java/j2html_codegen/GeneratorUtil.java
new file mode 100644
index 0000000..bc5c433
--- /dev/null
+++ b/code_gen/src/main/java/j2html_codegen/GeneratorUtil.java
@@ -0,0 +1,16 @@
+package j2html_codegen;
+
+import java.io.File;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+
+public final class GeneratorUtil {
+
+ public static final void deleteAllFilesInDir(final Path dir) throws IOException {
+ for(final File file : dir.toFile().listFiles()){
+ System.out.println("deleting " + file.toPath());
+ Files.delete(file.toPath());
+ }
+ }
+}
diff --git a/code_gen/src/main/java/j2html_codegen/generators/AttributeInterfaceCodeGenerator.java b/code_gen/src/main/java/j2html_codegen/generators/AttributeInterfaceCodeGenerator.java
index 8917e8b..eed4482 100644
--- a/code_gen/src/main/java/j2html_codegen/generators/AttributeInterfaceCodeGenerator.java
+++ b/code_gen/src/main/java/j2html_codegen/generators/AttributeInterfaceCodeGenerator.java
@@ -1,8 +1,10 @@
package j2html_codegen.generators;
+import j2html_codegen.GeneratorUtil;
import j2html_codegen.model.AttrD;
import j2html_codegen.model.AttributesList;
+import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
@@ -13,8 +15,14 @@ import java.util.Optional;
public final class AttributeInterfaceCodeGenerator {
+ private static final String relPath = "tags/attributes/";
+
public static void generate(final Path absPath, final boolean delete) throws IOException {
+ //delete all files in the directory for fresh generation
+ final Path dir = Paths.get(absPath.toString(),relPath);
+ GeneratorUtil.deleteAllFilesInDir(dir);
+
for (final AttrD attr : AttributesList.attributesDescriptive()) {
final Path path = makePath(attr.attr, absPath);
final String interfaceName = interfaceNameFromAttribute(attr.attr)+"";
@@ -29,17 +37,12 @@ public final class AttributeInterfaceCodeGenerator {
final String interfaceStr = getInterfaceTemplate(
interfaceName,
Optional.of("IInstance"),
- Arrays.asList("j2html.tags.Tag"),
+ Arrays.asList("j2html.tags.Tag","j2html.tags.IInstance"),
interfaceNameFromAttribute(attr.attr).substring(1),
attr
);
- if (delete) {
- if(Files.exists(path)) {
- System.out.println("deleting " + path);
- Files.delete(path);
- }
- }else{
+ if (!delete) {
System.out.println("writing to "+path);
Files.write(path, interfaceStr.getBytes());
}
@@ -184,7 +187,7 @@ public final class AttributeInterfaceCodeGenerator {
private static Path makePath(String tagLowerCase, final Path absPath){
final String filename = interfaceNameFromAttribute(tagLowerCase)+".java";
- return Paths.get(absPath.toString(),"tags/attributes/",filename);
+ return Paths.get(absPath.toString(),relPath,filename);
}
}
diff --git a/code_gen/src/main/java/j2html_codegen/generators/SpecializedTagClassCodeGenerator.java b/code_gen/src/main/java/j2html_codegen/generators/SpecializedTagClassCodeGenerator.java
index 9ff0e72..4d2711d 100644
--- a/code_gen/src/main/java/j2html_codegen/generators/SpecializedTagClassCodeGenerator.java
+++ b/code_gen/src/main/java/j2html_codegen/generators/SpecializedTagClassCodeGenerator.java
@@ -1,6 +1,7 @@
package j2html_codegen.generators;
+import j2html_codegen.GeneratorUtil;
import j2html_codegen.model.AttributesList;
import java.io.IOException;
@@ -17,8 +18,14 @@ import static j2html_codegen.generators.TagCreatorCodeGenerator.emptyTags;
public final class SpecializedTagClassCodeGenerator {
+ private static final String relPath = "tags/specialized/generated";
+
public static void generate(final Path absPath, final boolean delete) throws IOException {
+ //delete all files in the directory for fresh generation
+ final Path dir = Paths.get(absPath.toString(),relPath);
+ GeneratorUtil.deleteAllFilesInDir(dir);
+
//the delete argument serves to give the possibility
//to delete the classes that were written before
System.out.println("// EmptyTags, generated in " + SpecializedTagClassCodeGenerator.class);
@@ -47,12 +54,7 @@ public final class SpecializedTagClassCodeGenerator {
}
*/
- if(delete){
- if(Files.exists(path)) {
- System.out.println("deleting " + path);
- Files.delete(path);
- }
- }else {
+ if(!delete){
System.out.println("writing to "+path);
Files.write(path, classString.getBytes());
}
@@ -96,11 +98,11 @@ public final class SpecializedTagClassCodeGenerator {
private static Path makePath(final Path absPath, String tagLowerCase){
final String filename = classNameFromTag(tagLowerCase)+".java";
- return Paths.get(absPath.toString(),"tags/specialized/",filename);
+ return Paths.get(absPath.toString(),relPath,filename);
}
private static String getPackage(){
- return "package j2html.tags.specialized;\n";
+ return "package j2html.tags.specialized.generated;\n";
}
private static String getClassTemplate(
diff --git a/library/src/main/java/j2html/TagCreator.java b/library/src/main/java/j2html/TagCreator.java
index fa192e4..2b20fc7 100644
--- a/library/src/main/java/j2html/TagCreator.java
+++ b/library/src/main/java/j2html/TagCreator.java
@@ -8,7 +8,8 @@ import j2html.tags.EmptyTag;
import j2html.tags.InlineStaticResource;
import j2html.tags.Text;
import j2html.tags.UnescapedText;
-import j2html.tags.specialized.*;
+import j2html.tags.specialized.manual.*;
+import j2html.tags.specialized.generated.*;
import java.util.Collection;
import java.util.List;
diff --git a/library/src/main/java/j2html/tags/attributes/IInstance.java b/library/src/main/java/j2html/tags/IInstance.java
similarity index 94%
rename from library/src/main/java/j2html/tags/attributes/IInstance.java
rename to library/src/main/java/j2html/tags/IInstance.java
index 255e702..5f331a9 100644
--- a/library/src/main/java/j2html/tags/attributes/IInstance.java
+++ b/library/src/main/java/j2html/tags/IInstance.java
@@ -1,4 +1,4 @@
-package j2html.tags.attributes;
+package j2html.tags;
public interface IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IAccept.java b/library/src/main/java/j2html/tags/attributes/IAccept.java
index 6c8f645..30a9377 100644
--- a/library/src/main/java/j2html/tags/attributes/IAccept.java
+++ b/library/src/main/java/j2html/tags/attributes/IAccept.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IAccept extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IAction.java b/library/src/main/java/j2html/tags/attributes/IAction.java
index 43c45d2..2384521 100644
--- a/library/src/main/java/j2html/tags/attributes/IAction.java
+++ b/library/src/main/java/j2html/tags/attributes/IAction.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IAction extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IAlt.java b/library/src/main/java/j2html/tags/attributes/IAlt.java
index a3ef8c3..54e549e 100644
--- a/library/src/main/java/j2html/tags/attributes/IAlt.java
+++ b/library/src/main/java/j2html/tags/attributes/IAlt.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IAlt extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IAsync.java b/library/src/main/java/j2html/tags/attributes/IAsync.java
index f612526..fb94d86 100644
--- a/library/src/main/java/j2html/tags/attributes/IAsync.java
+++ b/library/src/main/java/j2html/tags/attributes/IAsync.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IAsync extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IAutocomplete.java b/library/src/main/java/j2html/tags/attributes/IAutocomplete.java
index ae3709f..b15646b 100644
--- a/library/src/main/java/j2html/tags/attributes/IAutocomplete.java
+++ b/library/src/main/java/j2html/tags/attributes/IAutocomplete.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IAutocomplete extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IAutofocus.java b/library/src/main/java/j2html/tags/attributes/IAutofocus.java
index a0dee97..04dae2c 100644
--- a/library/src/main/java/j2html/tags/attributes/IAutofocus.java
+++ b/library/src/main/java/j2html/tags/attributes/IAutofocus.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IAutofocus extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IAutoplay.java b/library/src/main/java/j2html/tags/attributes/IAutoplay.java
index f200f04..d127e50 100644
--- a/library/src/main/java/j2html/tags/attributes/IAutoplay.java
+++ b/library/src/main/java/j2html/tags/attributes/IAutoplay.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IAutoplay extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/ICharset.java b/library/src/main/java/j2html/tags/attributes/ICharset.java
index a7817ec..dc30d81 100644
--- a/library/src/main/java/j2html/tags/attributes/ICharset.java
+++ b/library/src/main/java/j2html/tags/attributes/ICharset.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface ICharset extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IChecked.java b/library/src/main/java/j2html/tags/attributes/IChecked.java
index c2a4d13..ed5979a 100644
--- a/library/src/main/java/j2html/tags/attributes/IChecked.java
+++ b/library/src/main/java/j2html/tags/attributes/IChecked.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IChecked extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/ICite.java b/library/src/main/java/j2html/tags/attributes/ICite.java
index cba8f8d..7a5f0df 100644
--- a/library/src/main/java/j2html/tags/attributes/ICite.java
+++ b/library/src/main/java/j2html/tags/attributes/ICite.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface ICite extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/ICols.java b/library/src/main/java/j2html/tags/attributes/ICols.java
index da16723..ef554d5 100644
--- a/library/src/main/java/j2html/tags/attributes/ICols.java
+++ b/library/src/main/java/j2html/tags/attributes/ICols.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface ICols extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IColspan.java b/library/src/main/java/j2html/tags/attributes/IColspan.java
index b7411e7..3be0bf5 100644
--- a/library/src/main/java/j2html/tags/attributes/IColspan.java
+++ b/library/src/main/java/j2html/tags/attributes/IColspan.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IColspan extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IContent.java b/library/src/main/java/j2html/tags/attributes/IContent.java
index 9b1eb94..777f912 100644
--- a/library/src/main/java/j2html/tags/attributes/IContent.java
+++ b/library/src/main/java/j2html/tags/attributes/IContent.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IContent extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IControls.java b/library/src/main/java/j2html/tags/attributes/IControls.java
index 920a870..d1561d0 100644
--- a/library/src/main/java/j2html/tags/attributes/IControls.java
+++ b/library/src/main/java/j2html/tags/attributes/IControls.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IControls extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/ICoords.java b/library/src/main/java/j2html/tags/attributes/ICoords.java
index f37ea43..70db5ec 100644
--- a/library/src/main/java/j2html/tags/attributes/ICoords.java
+++ b/library/src/main/java/j2html/tags/attributes/ICoords.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface ICoords extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IData.java b/library/src/main/java/j2html/tags/attributes/IData.java
index c01ad75..3f54ae9 100644
--- a/library/src/main/java/j2html/tags/attributes/IData.java
+++ b/library/src/main/java/j2html/tags/attributes/IData.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IData extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IDatetime.java b/library/src/main/java/j2html/tags/attributes/IDatetime.java
index fa4e3e6..4ee7bd3 100644
--- a/library/src/main/java/j2html/tags/attributes/IDatetime.java
+++ b/library/src/main/java/j2html/tags/attributes/IDatetime.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IDatetime extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IDefault.java b/library/src/main/java/j2html/tags/attributes/IDefault.java
index 38b3cfb..baffa38 100644
--- a/library/src/main/java/j2html/tags/attributes/IDefault.java
+++ b/library/src/main/java/j2html/tags/attributes/IDefault.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IDefault extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IDefer.java b/library/src/main/java/j2html/tags/attributes/IDefer.java
index 1c015c6..9a6060b 100644
--- a/library/src/main/java/j2html/tags/attributes/IDefer.java
+++ b/library/src/main/java/j2html/tags/attributes/IDefer.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IDefer extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IDirname.java b/library/src/main/java/j2html/tags/attributes/IDirname.java
index b3f8c9f..b273cae 100644
--- a/library/src/main/java/j2html/tags/attributes/IDirname.java
+++ b/library/src/main/java/j2html/tags/attributes/IDirname.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IDirname extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IDisabled.java b/library/src/main/java/j2html/tags/attributes/IDisabled.java
index be278c0..e55c49e 100644
--- a/library/src/main/java/j2html/tags/attributes/IDisabled.java
+++ b/library/src/main/java/j2html/tags/attributes/IDisabled.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IDisabled extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IDownload.java b/library/src/main/java/j2html/tags/attributes/IDownload.java
index 5dac1ef..25fec97 100644
--- a/library/src/main/java/j2html/tags/attributes/IDownload.java
+++ b/library/src/main/java/j2html/tags/attributes/IDownload.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IDownload extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IEnctype.java b/library/src/main/java/j2html/tags/attributes/IEnctype.java
index f65b1f3..7cbc9f3 100644
--- a/library/src/main/java/j2html/tags/attributes/IEnctype.java
+++ b/library/src/main/java/j2html/tags/attributes/IEnctype.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IEnctype extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IFor.java b/library/src/main/java/j2html/tags/attributes/IFor.java
index a596699..2ab8778 100644
--- a/library/src/main/java/j2html/tags/attributes/IFor.java
+++ b/library/src/main/java/j2html/tags/attributes/IFor.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IFor extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IForm.java b/library/src/main/java/j2html/tags/attributes/IForm.java
index 723330d..44c1f08 100644
--- a/library/src/main/java/j2html/tags/attributes/IForm.java
+++ b/library/src/main/java/j2html/tags/attributes/IForm.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IForm extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IFormAction.java b/library/src/main/java/j2html/tags/attributes/IFormAction.java
deleted file mode 100644
index 78678d0..0000000
--- a/library/src/main/java/j2html/tags/attributes/IFormAction.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package j2html.tags.attributes;
-
-import j2html.tags.Tag;
-
-
-public interface IFormAction extends IInstance {
-
- default T withFormAction(String formAction) {
- get().attr("formaction", formAction);
- return get();
- }
-}
diff --git a/library/src/main/java/j2html/tags/attributes/IFormaction.java b/library/src/main/java/j2html/tags/attributes/IFormaction.java
index 2016db2..285efaf 100644
--- a/library/src/main/java/j2html/tags/attributes/IFormaction.java
+++ b/library/src/main/java/j2html/tags/attributes/IFormaction.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IFormaction extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IHeaders.java b/library/src/main/java/j2html/tags/attributes/IHeaders.java
index 7e4702c..0fae661 100644
--- a/library/src/main/java/j2html/tags/attributes/IHeaders.java
+++ b/library/src/main/java/j2html/tags/attributes/IHeaders.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IHeaders extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IHeight.java b/library/src/main/java/j2html/tags/attributes/IHeight.java
index 40e90e4..bd3bde7 100644
--- a/library/src/main/java/j2html/tags/attributes/IHeight.java
+++ b/library/src/main/java/j2html/tags/attributes/IHeight.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IHeight extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IHigh.java b/library/src/main/java/j2html/tags/attributes/IHigh.java
index 389da6f..b422dc7 100644
--- a/library/src/main/java/j2html/tags/attributes/IHigh.java
+++ b/library/src/main/java/j2html/tags/attributes/IHigh.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IHigh extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IHref.java b/library/src/main/java/j2html/tags/attributes/IHref.java
index 1b1fe8a..9864cb3 100644
--- a/library/src/main/java/j2html/tags/attributes/IHref.java
+++ b/library/src/main/java/j2html/tags/attributes/IHref.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IHref extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IHreflang.java b/library/src/main/java/j2html/tags/attributes/IHreflang.java
index 509a49f..4d7165e 100644
--- a/library/src/main/java/j2html/tags/attributes/IHreflang.java
+++ b/library/src/main/java/j2html/tags/attributes/IHreflang.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IHreflang extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IIsmap.java b/library/src/main/java/j2html/tags/attributes/IIsmap.java
index 519eca3..a080e50 100644
--- a/library/src/main/java/j2html/tags/attributes/IIsmap.java
+++ b/library/src/main/java/j2html/tags/attributes/IIsmap.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IIsmap extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IKind.java b/library/src/main/java/j2html/tags/attributes/IKind.java
index df28a60..6d7e665 100644
--- a/library/src/main/java/j2html/tags/attributes/IKind.java
+++ b/library/src/main/java/j2html/tags/attributes/IKind.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IKind extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/ILabel.java b/library/src/main/java/j2html/tags/attributes/ILabel.java
index 14747c9..8186ed8 100644
--- a/library/src/main/java/j2html/tags/attributes/ILabel.java
+++ b/library/src/main/java/j2html/tags/attributes/ILabel.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface ILabel extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IList.java b/library/src/main/java/j2html/tags/attributes/IList.java
index 846ea7b..9eb3534 100644
--- a/library/src/main/java/j2html/tags/attributes/IList.java
+++ b/library/src/main/java/j2html/tags/attributes/IList.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IList extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/ILoop.java b/library/src/main/java/j2html/tags/attributes/ILoop.java
index 8df11d4..d57266a 100644
--- a/library/src/main/java/j2html/tags/attributes/ILoop.java
+++ b/library/src/main/java/j2html/tags/attributes/ILoop.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface ILoop extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/ILow.java b/library/src/main/java/j2html/tags/attributes/ILow.java
index 017372a..1a15f92 100644
--- a/library/src/main/java/j2html/tags/attributes/ILow.java
+++ b/library/src/main/java/j2html/tags/attributes/ILow.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface ILow extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IMax.java b/library/src/main/java/j2html/tags/attributes/IMax.java
index 29a030b..56c080b 100644
--- a/library/src/main/java/j2html/tags/attributes/IMax.java
+++ b/library/src/main/java/j2html/tags/attributes/IMax.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IMax extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IMaxlength.java b/library/src/main/java/j2html/tags/attributes/IMaxlength.java
index bc33747..492a4ed 100644
--- a/library/src/main/java/j2html/tags/attributes/IMaxlength.java
+++ b/library/src/main/java/j2html/tags/attributes/IMaxlength.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IMaxlength extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IMedia.java b/library/src/main/java/j2html/tags/attributes/IMedia.java
index 45bdd7a..cc96ae8 100644
--- a/library/src/main/java/j2html/tags/attributes/IMedia.java
+++ b/library/src/main/java/j2html/tags/attributes/IMedia.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IMedia extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IMethod.java b/library/src/main/java/j2html/tags/attributes/IMethod.java
index 823e133..656cfea 100644
--- a/library/src/main/java/j2html/tags/attributes/IMethod.java
+++ b/library/src/main/java/j2html/tags/attributes/IMethod.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IMethod extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IMin.java b/library/src/main/java/j2html/tags/attributes/IMin.java
index 95e826f..cc0a87a 100644
--- a/library/src/main/java/j2html/tags/attributes/IMin.java
+++ b/library/src/main/java/j2html/tags/attributes/IMin.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IMin extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IMultiple.java b/library/src/main/java/j2html/tags/attributes/IMultiple.java
index 821e2b9..c3f76cf 100644
--- a/library/src/main/java/j2html/tags/attributes/IMultiple.java
+++ b/library/src/main/java/j2html/tags/attributes/IMultiple.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IMultiple extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IMuted.java b/library/src/main/java/j2html/tags/attributes/IMuted.java
index adeac8c..cbf85a3 100644
--- a/library/src/main/java/j2html/tags/attributes/IMuted.java
+++ b/library/src/main/java/j2html/tags/attributes/IMuted.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IMuted extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IName.java b/library/src/main/java/j2html/tags/attributes/IName.java
index ac615d7..9e0200c 100644
--- a/library/src/main/java/j2html/tags/attributes/IName.java
+++ b/library/src/main/java/j2html/tags/attributes/IName.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IName extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/INovalidate.java b/library/src/main/java/j2html/tags/attributes/INovalidate.java
index 0dd3145..c7eb14f 100644
--- a/library/src/main/java/j2html/tags/attributes/INovalidate.java
+++ b/library/src/main/java/j2html/tags/attributes/INovalidate.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface INovalidate extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IOnabort.java b/library/src/main/java/j2html/tags/attributes/IOnabort.java
index be63322..930c02b 100644
--- a/library/src/main/java/j2html/tags/attributes/IOnabort.java
+++ b/library/src/main/java/j2html/tags/attributes/IOnabort.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IOnabort extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IOnafterprint.java b/library/src/main/java/j2html/tags/attributes/IOnafterprint.java
index 6d97565..a787a2e 100644
--- a/library/src/main/java/j2html/tags/attributes/IOnafterprint.java
+++ b/library/src/main/java/j2html/tags/attributes/IOnafterprint.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IOnafterprint extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IOnbeforeprint.java b/library/src/main/java/j2html/tags/attributes/IOnbeforeprint.java
index 5fd7025..9f061a1 100644
--- a/library/src/main/java/j2html/tags/attributes/IOnbeforeprint.java
+++ b/library/src/main/java/j2html/tags/attributes/IOnbeforeprint.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IOnbeforeprint extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IOnbeforeunload.java b/library/src/main/java/j2html/tags/attributes/IOnbeforeunload.java
index 08d8ec9..cb53ffb 100644
--- a/library/src/main/java/j2html/tags/attributes/IOnbeforeunload.java
+++ b/library/src/main/java/j2html/tags/attributes/IOnbeforeunload.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IOnbeforeunload extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IOnblur.java b/library/src/main/java/j2html/tags/attributes/IOnblur.java
deleted file mode 100644
index ed3e2df..0000000
--- a/library/src/main/java/j2html/tags/attributes/IOnblur.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package j2html.tags.attributes;
-
-import j2html.tags.Tag;
-
-public interface IOnblur extends IInstance {
- default T withOnblur(final String onblur_) {
- get().attr("onblur", onblur_);
- return get();
- }
-}
diff --git a/library/src/main/java/j2html/tags/attributes/IOncanplay.java b/library/src/main/java/j2html/tags/attributes/IOncanplay.java
index bb05b46..92d595f 100644
--- a/library/src/main/java/j2html/tags/attributes/IOncanplay.java
+++ b/library/src/main/java/j2html/tags/attributes/IOncanplay.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IOncanplay extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IOncanplaythrough.java b/library/src/main/java/j2html/tags/attributes/IOncanplaythrough.java
index 30c905a..c8ab0c6 100644
--- a/library/src/main/java/j2html/tags/attributes/IOncanplaythrough.java
+++ b/library/src/main/java/j2html/tags/attributes/IOncanplaythrough.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IOncanplaythrough extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IOncuechange.java b/library/src/main/java/j2html/tags/attributes/IOncuechange.java
index 5953e88..1ca0d76 100644
--- a/library/src/main/java/j2html/tags/attributes/IOncuechange.java
+++ b/library/src/main/java/j2html/tags/attributes/IOncuechange.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IOncuechange extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IOndurationchange.java b/library/src/main/java/j2html/tags/attributes/IOndurationchange.java
index 07a79cb..54d231c 100644
--- a/library/src/main/java/j2html/tags/attributes/IOndurationchange.java
+++ b/library/src/main/java/j2html/tags/attributes/IOndurationchange.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IOndurationchange extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IOnemptied.java b/library/src/main/java/j2html/tags/attributes/IOnemptied.java
index f89ab78..0334366 100644
--- a/library/src/main/java/j2html/tags/attributes/IOnemptied.java
+++ b/library/src/main/java/j2html/tags/attributes/IOnemptied.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IOnemptied extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IOnended.java b/library/src/main/java/j2html/tags/attributes/IOnended.java
index 0e143fc..0d1d440 100644
--- a/library/src/main/java/j2html/tags/attributes/IOnended.java
+++ b/library/src/main/java/j2html/tags/attributes/IOnended.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IOnended extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IOnerror.java b/library/src/main/java/j2html/tags/attributes/IOnerror.java
index 737587c..53fe511 100644
--- a/library/src/main/java/j2html/tags/attributes/IOnerror.java
+++ b/library/src/main/java/j2html/tags/attributes/IOnerror.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IOnerror extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IOnhashchange.java b/library/src/main/java/j2html/tags/attributes/IOnhashchange.java
index 23f4e76..2096e80 100644
--- a/library/src/main/java/j2html/tags/attributes/IOnhashchange.java
+++ b/library/src/main/java/j2html/tags/attributes/IOnhashchange.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IOnhashchange extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IOnload.java b/library/src/main/java/j2html/tags/attributes/IOnload.java
index 3d9f18b..e34eb08 100644
--- a/library/src/main/java/j2html/tags/attributes/IOnload.java
+++ b/library/src/main/java/j2html/tags/attributes/IOnload.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IOnload extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IOnloadeddata.java b/library/src/main/java/j2html/tags/attributes/IOnloadeddata.java
index b50f41f..c063950 100644
--- a/library/src/main/java/j2html/tags/attributes/IOnloadeddata.java
+++ b/library/src/main/java/j2html/tags/attributes/IOnloadeddata.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IOnloadeddata extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IOnloadedmetadata.java b/library/src/main/java/j2html/tags/attributes/IOnloadedmetadata.java
index 386e1de..947bf80 100644
--- a/library/src/main/java/j2html/tags/attributes/IOnloadedmetadata.java
+++ b/library/src/main/java/j2html/tags/attributes/IOnloadedmetadata.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IOnloadedmetadata extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IOnloadstart.java b/library/src/main/java/j2html/tags/attributes/IOnloadstart.java
index 1a15139..8aa4bc2 100644
--- a/library/src/main/java/j2html/tags/attributes/IOnloadstart.java
+++ b/library/src/main/java/j2html/tags/attributes/IOnloadstart.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IOnloadstart extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IOnoffline.java b/library/src/main/java/j2html/tags/attributes/IOnoffline.java
index 0f0b437..16a7b4e 100644
--- a/library/src/main/java/j2html/tags/attributes/IOnoffline.java
+++ b/library/src/main/java/j2html/tags/attributes/IOnoffline.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IOnoffline extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IOnonline.java b/library/src/main/java/j2html/tags/attributes/IOnonline.java
index c634b60..509ef59 100644
--- a/library/src/main/java/j2html/tags/attributes/IOnonline.java
+++ b/library/src/main/java/j2html/tags/attributes/IOnonline.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IOnonline extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IOnpagehide.java b/library/src/main/java/j2html/tags/attributes/IOnpagehide.java
index 1437875..51e2392 100644
--- a/library/src/main/java/j2html/tags/attributes/IOnpagehide.java
+++ b/library/src/main/java/j2html/tags/attributes/IOnpagehide.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IOnpagehide extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IOnpageshow.java b/library/src/main/java/j2html/tags/attributes/IOnpageshow.java
index 5e76af2..e2faaae 100644
--- a/library/src/main/java/j2html/tags/attributes/IOnpageshow.java
+++ b/library/src/main/java/j2html/tags/attributes/IOnpageshow.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IOnpageshow extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IOnpause.java b/library/src/main/java/j2html/tags/attributes/IOnpause.java
index a4edf3a..7394446 100644
--- a/library/src/main/java/j2html/tags/attributes/IOnpause.java
+++ b/library/src/main/java/j2html/tags/attributes/IOnpause.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IOnpause extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IOnplay.java b/library/src/main/java/j2html/tags/attributes/IOnplay.java
index 5a0ba60..181e655 100644
--- a/library/src/main/java/j2html/tags/attributes/IOnplay.java
+++ b/library/src/main/java/j2html/tags/attributes/IOnplay.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IOnplay extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IOnplaying.java b/library/src/main/java/j2html/tags/attributes/IOnplaying.java
index 22e4281..afcd9b8 100644
--- a/library/src/main/java/j2html/tags/attributes/IOnplaying.java
+++ b/library/src/main/java/j2html/tags/attributes/IOnplaying.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IOnplaying extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IOnpopstate.java b/library/src/main/java/j2html/tags/attributes/IOnpopstate.java
index 73d45e1..6e357c2 100644
--- a/library/src/main/java/j2html/tags/attributes/IOnpopstate.java
+++ b/library/src/main/java/j2html/tags/attributes/IOnpopstate.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IOnpopstate extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IOnprogress.java b/library/src/main/java/j2html/tags/attributes/IOnprogress.java
index 5d427fd..4cd08d5 100644
--- a/library/src/main/java/j2html/tags/attributes/IOnprogress.java
+++ b/library/src/main/java/j2html/tags/attributes/IOnprogress.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IOnprogress extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IOnratechange.java b/library/src/main/java/j2html/tags/attributes/IOnratechange.java
index 1bc4876..2138196 100644
--- a/library/src/main/java/j2html/tags/attributes/IOnratechange.java
+++ b/library/src/main/java/j2html/tags/attributes/IOnratechange.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IOnratechange extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IOnreset.java b/library/src/main/java/j2html/tags/attributes/IOnreset.java
index 99508fd..7db7644 100644
--- a/library/src/main/java/j2html/tags/attributes/IOnreset.java
+++ b/library/src/main/java/j2html/tags/attributes/IOnreset.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IOnreset extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IOnresize.java b/library/src/main/java/j2html/tags/attributes/IOnresize.java
index e5e4986..70c4231 100644
--- a/library/src/main/java/j2html/tags/attributes/IOnresize.java
+++ b/library/src/main/java/j2html/tags/attributes/IOnresize.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IOnresize extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IOnscroll.java b/library/src/main/java/j2html/tags/attributes/IOnscroll.java
deleted file mode 100644
index 9b5e70b..0000000
--- a/library/src/main/java/j2html/tags/attributes/IOnscroll.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package j2html.tags.attributes;
-
-import j2html.tags.Tag;
-
-public interface IOnscroll extends IInstance {
- default T withOnscroll(final String onscroll_) {
- get().attr("onscroll", onscroll_);
- return get();
- }
-}
diff --git a/library/src/main/java/j2html/tags/attributes/IOnsearch.java b/library/src/main/java/j2html/tags/attributes/IOnsearch.java
index 236e953..c83fc42 100644
--- a/library/src/main/java/j2html/tags/attributes/IOnsearch.java
+++ b/library/src/main/java/j2html/tags/attributes/IOnsearch.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IOnsearch extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IOnseeked.java b/library/src/main/java/j2html/tags/attributes/IOnseeked.java
index 8c06ee3..c2c513c 100644
--- a/library/src/main/java/j2html/tags/attributes/IOnseeked.java
+++ b/library/src/main/java/j2html/tags/attributes/IOnseeked.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IOnseeked extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IOnseeking.java b/library/src/main/java/j2html/tags/attributes/IOnseeking.java
index 80039d3..3ebb5dc 100644
--- a/library/src/main/java/j2html/tags/attributes/IOnseeking.java
+++ b/library/src/main/java/j2html/tags/attributes/IOnseeking.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IOnseeking extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IOnselect.java b/library/src/main/java/j2html/tags/attributes/IOnselect.java
deleted file mode 100644
index 9a4ea38..0000000
--- a/library/src/main/java/j2html/tags/attributes/IOnselect.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package j2html.tags.attributes;
-
-import j2html.tags.Tag;
-
-public interface IOnselect extends IInstance {
- default T withOnselect(final String onselect_) {
- get().attr("onselect", onselect_);
- return get();
- }
-}
diff --git a/library/src/main/java/j2html/tags/attributes/IOnstalled.java b/library/src/main/java/j2html/tags/attributes/IOnstalled.java
index 53b6124..81b3e13 100644
--- a/library/src/main/java/j2html/tags/attributes/IOnstalled.java
+++ b/library/src/main/java/j2html/tags/attributes/IOnstalled.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IOnstalled extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IOnstorage.java b/library/src/main/java/j2html/tags/attributes/IOnstorage.java
index 70be0a1..04f21fc 100644
--- a/library/src/main/java/j2html/tags/attributes/IOnstorage.java
+++ b/library/src/main/java/j2html/tags/attributes/IOnstorage.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IOnstorage extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IOnsubmit.java b/library/src/main/java/j2html/tags/attributes/IOnsubmit.java
index c9cb03b..0a09190 100644
--- a/library/src/main/java/j2html/tags/attributes/IOnsubmit.java
+++ b/library/src/main/java/j2html/tags/attributes/IOnsubmit.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IOnsubmit extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IOnsuspend.java b/library/src/main/java/j2html/tags/attributes/IOnsuspend.java
index ba008c0..56bc79a 100644
--- a/library/src/main/java/j2html/tags/attributes/IOnsuspend.java
+++ b/library/src/main/java/j2html/tags/attributes/IOnsuspend.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IOnsuspend extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IOntimeupdate.java b/library/src/main/java/j2html/tags/attributes/IOntimeupdate.java
index ac5b67e..6191215 100644
--- a/library/src/main/java/j2html/tags/attributes/IOntimeupdate.java
+++ b/library/src/main/java/j2html/tags/attributes/IOntimeupdate.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IOntimeupdate extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IOntoggle.java b/library/src/main/java/j2html/tags/attributes/IOntoggle.java
index 91aeea3..9597334 100644
--- a/library/src/main/java/j2html/tags/attributes/IOntoggle.java
+++ b/library/src/main/java/j2html/tags/attributes/IOntoggle.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IOntoggle extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IOnunload.java b/library/src/main/java/j2html/tags/attributes/IOnunload.java
index 1a87fde..4a8c1e4 100644
--- a/library/src/main/java/j2html/tags/attributes/IOnunload.java
+++ b/library/src/main/java/j2html/tags/attributes/IOnunload.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IOnunload extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IOnvolumechanged.java b/library/src/main/java/j2html/tags/attributes/IOnvolumechanged.java
index 16115a8..ad29ca1 100644
--- a/library/src/main/java/j2html/tags/attributes/IOnvolumechanged.java
+++ b/library/src/main/java/j2html/tags/attributes/IOnvolumechanged.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IOnvolumechanged extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IOnwaiting.java b/library/src/main/java/j2html/tags/attributes/IOnwaiting.java
index 84cf74f..6c0b7b9 100644
--- a/library/src/main/java/j2html/tags/attributes/IOnwaiting.java
+++ b/library/src/main/java/j2html/tags/attributes/IOnwaiting.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IOnwaiting extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IOnwheel.java b/library/src/main/java/j2html/tags/attributes/IOnwheel.java
deleted file mode 100644
index 9172dac..0000000
--- a/library/src/main/java/j2html/tags/attributes/IOnwheel.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package j2html.tags.attributes;
-
-import j2html.tags.Tag;
-
-public interface IOnwheel extends IInstance {
- default T withOnwheel(final String onwheel_) {
- get().attr("onwheel", onwheel_);
- return get();
- }
-}
diff --git a/library/src/main/java/j2html/tags/attributes/IOpen.java b/library/src/main/java/j2html/tags/attributes/IOpen.java
index 37a2add..98b584b 100644
--- a/library/src/main/java/j2html/tags/attributes/IOpen.java
+++ b/library/src/main/java/j2html/tags/attributes/IOpen.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IOpen extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IOptimum.java b/library/src/main/java/j2html/tags/attributes/IOptimum.java
index b538fcd..699c6f6 100644
--- a/library/src/main/java/j2html/tags/attributes/IOptimum.java
+++ b/library/src/main/java/j2html/tags/attributes/IOptimum.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IOptimum extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IPattern.java b/library/src/main/java/j2html/tags/attributes/IPattern.java
index dbcda5f..9bedfa1 100644
--- a/library/src/main/java/j2html/tags/attributes/IPattern.java
+++ b/library/src/main/java/j2html/tags/attributes/IPattern.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IPattern extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IPlaceholder.java b/library/src/main/java/j2html/tags/attributes/IPlaceholder.java
index a6f34ee..ad5eb56 100644
--- a/library/src/main/java/j2html/tags/attributes/IPlaceholder.java
+++ b/library/src/main/java/j2html/tags/attributes/IPlaceholder.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IPlaceholder extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IPoster.java b/library/src/main/java/j2html/tags/attributes/IPoster.java
index 65d8eea..3e9e719 100644
--- a/library/src/main/java/j2html/tags/attributes/IPoster.java
+++ b/library/src/main/java/j2html/tags/attributes/IPoster.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IPoster extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IPreload.java b/library/src/main/java/j2html/tags/attributes/IPreload.java
index 2545c20..f985d2a 100644
--- a/library/src/main/java/j2html/tags/attributes/IPreload.java
+++ b/library/src/main/java/j2html/tags/attributes/IPreload.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IPreload extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IReadonly.java b/library/src/main/java/j2html/tags/attributes/IReadonly.java
index 80f4bf3..6c3a5b7 100644
--- a/library/src/main/java/j2html/tags/attributes/IReadonly.java
+++ b/library/src/main/java/j2html/tags/attributes/IReadonly.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IReadonly extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IRel.java b/library/src/main/java/j2html/tags/attributes/IRel.java
index 38c0e13..b26d94b 100644
--- a/library/src/main/java/j2html/tags/attributes/IRel.java
+++ b/library/src/main/java/j2html/tags/attributes/IRel.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IRel extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IRequired.java b/library/src/main/java/j2html/tags/attributes/IRequired.java
index e78d065..5c22528 100644
--- a/library/src/main/java/j2html/tags/attributes/IRequired.java
+++ b/library/src/main/java/j2html/tags/attributes/IRequired.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IRequired extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IReversed.java b/library/src/main/java/j2html/tags/attributes/IReversed.java
index cba817d..66f3e50 100644
--- a/library/src/main/java/j2html/tags/attributes/IReversed.java
+++ b/library/src/main/java/j2html/tags/attributes/IReversed.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IReversed extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IRows.java b/library/src/main/java/j2html/tags/attributes/IRows.java
index 55ae367..123da9b 100644
--- a/library/src/main/java/j2html/tags/attributes/IRows.java
+++ b/library/src/main/java/j2html/tags/attributes/IRows.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IRows extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IRowspan.java b/library/src/main/java/j2html/tags/attributes/IRowspan.java
index 2c9829a..dd72574 100644
--- a/library/src/main/java/j2html/tags/attributes/IRowspan.java
+++ b/library/src/main/java/j2html/tags/attributes/IRowspan.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IRowspan extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/ISandbox.java b/library/src/main/java/j2html/tags/attributes/ISandbox.java
index eb07bb6..7d45733 100644
--- a/library/src/main/java/j2html/tags/attributes/ISandbox.java
+++ b/library/src/main/java/j2html/tags/attributes/ISandbox.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface ISandbox extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IScope.java b/library/src/main/java/j2html/tags/attributes/IScope.java
index a3dc225..1d9a28c 100644
--- a/library/src/main/java/j2html/tags/attributes/IScope.java
+++ b/library/src/main/java/j2html/tags/attributes/IScope.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IScope extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/ISelected.java b/library/src/main/java/j2html/tags/attributes/ISelected.java
index 6dbf887..0f01961 100644
--- a/library/src/main/java/j2html/tags/attributes/ISelected.java
+++ b/library/src/main/java/j2html/tags/attributes/ISelected.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface ISelected extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IShape.java b/library/src/main/java/j2html/tags/attributes/IShape.java
index cbfcc30..1b042d2 100644
--- a/library/src/main/java/j2html/tags/attributes/IShape.java
+++ b/library/src/main/java/j2html/tags/attributes/IShape.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IShape extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/ISize.java b/library/src/main/java/j2html/tags/attributes/ISize.java
index 4798131..f0fbd3c 100644
--- a/library/src/main/java/j2html/tags/attributes/ISize.java
+++ b/library/src/main/java/j2html/tags/attributes/ISize.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface ISize extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/ISizes.java b/library/src/main/java/j2html/tags/attributes/ISizes.java
index a50070c..396dedf 100644
--- a/library/src/main/java/j2html/tags/attributes/ISizes.java
+++ b/library/src/main/java/j2html/tags/attributes/ISizes.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface ISizes extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/ISpan.java b/library/src/main/java/j2html/tags/attributes/ISpan.java
index a4b715a..5e3f4d1 100644
--- a/library/src/main/java/j2html/tags/attributes/ISpan.java
+++ b/library/src/main/java/j2html/tags/attributes/ISpan.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface ISpan extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/ISrc.java b/library/src/main/java/j2html/tags/attributes/ISrc.java
index f12c30b..620de96 100644
--- a/library/src/main/java/j2html/tags/attributes/ISrc.java
+++ b/library/src/main/java/j2html/tags/attributes/ISrc.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface ISrc extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/ISrcdoc.java b/library/src/main/java/j2html/tags/attributes/ISrcdoc.java
index 9976c77..480b658 100644
--- a/library/src/main/java/j2html/tags/attributes/ISrcdoc.java
+++ b/library/src/main/java/j2html/tags/attributes/ISrcdoc.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface ISrcdoc extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/ISrclang.java b/library/src/main/java/j2html/tags/attributes/ISrclang.java
index 0399017..8335312 100644
--- a/library/src/main/java/j2html/tags/attributes/ISrclang.java
+++ b/library/src/main/java/j2html/tags/attributes/ISrclang.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface ISrclang extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/ISrcset.java b/library/src/main/java/j2html/tags/attributes/ISrcset.java
index b32af20..e1a1623 100644
--- a/library/src/main/java/j2html/tags/attributes/ISrcset.java
+++ b/library/src/main/java/j2html/tags/attributes/ISrcset.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface ISrcset extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IStart.java b/library/src/main/java/j2html/tags/attributes/IStart.java
index d46a1dd..685b605 100644
--- a/library/src/main/java/j2html/tags/attributes/IStart.java
+++ b/library/src/main/java/j2html/tags/attributes/IStart.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IStart extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IStep.java b/library/src/main/java/j2html/tags/attributes/IStep.java
index 5f474d1..76fa407 100644
--- a/library/src/main/java/j2html/tags/attributes/IStep.java
+++ b/library/src/main/java/j2html/tags/attributes/IStep.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IStep extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/ITarget.java b/library/src/main/java/j2html/tags/attributes/ITarget.java
index d5ff1a7..5f653bc 100644
--- a/library/src/main/java/j2html/tags/attributes/ITarget.java
+++ b/library/src/main/java/j2html/tags/attributes/ITarget.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface ITarget extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IType.java b/library/src/main/java/j2html/tags/attributes/IType.java
index dd09ec8..16200b4 100644
--- a/library/src/main/java/j2html/tags/attributes/IType.java
+++ b/library/src/main/java/j2html/tags/attributes/IType.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IType extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IUsemap.java b/library/src/main/java/j2html/tags/attributes/IUsemap.java
index 038f52b..de6303a 100644
--- a/library/src/main/java/j2html/tags/attributes/IUsemap.java
+++ b/library/src/main/java/j2html/tags/attributes/IUsemap.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IUsemap extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IValue.java b/library/src/main/java/j2html/tags/attributes/IValue.java
index d66357c..74c92f6 100644
--- a/library/src/main/java/j2html/tags/attributes/IValue.java
+++ b/library/src/main/java/j2html/tags/attributes/IValue.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IValue extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IWidth.java b/library/src/main/java/j2html/tags/attributes/IWidth.java
index 06a2afb..0cc047e 100644
--- a/library/src/main/java/j2html/tags/attributes/IWidth.java
+++ b/library/src/main/java/j2html/tags/attributes/IWidth.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IWidth extends IInstance {
diff --git a/library/src/main/java/j2html/tags/attributes/IWrap.java b/library/src/main/java/j2html/tags/attributes/IWrap.java
index 50b07e5..d8dc1ce 100644
--- a/library/src/main/java/j2html/tags/attributes/IWrap.java
+++ b/library/src/main/java/j2html/tags/attributes/IWrap.java
@@ -1,5 +1,6 @@
package j2html.tags.attributes;
+import j2html.tags.IInstance;
import j2html.tags.Tag;
public interface IWrap extends IInstance {
diff --git a/library/src/main/java/j2html/tags/specialized/TextAreaTag.java b/library/src/main/java/j2html/tags/specialized/TextAreaTag.java
deleted file mode 100644
index b0a67d3..0000000
--- a/library/src/main/java/j2html/tags/specialized/TextAreaTag.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package j2html.tags.specialized;
-
-import j2html.tags.ContainerTag;
-import j2html.tags.attributes.IDisabled;
-import j2html.tags.attributes.IForm;
-
-public final class TextAreaTag extends ContainerTag
- implements
- IDisabled,
- IForm {
-
- public TextAreaTag() {
- super("textarea");
- }
-}
diff --git a/library/src/main/java/j2html/tags/specialized/ATag.java b/library/src/main/java/j2html/tags/specialized/generated/ATag.java
similarity index 86%
rename from library/src/main/java/j2html/tags/specialized/ATag.java
rename to library/src/main/java/j2html/tags/specialized/generated/ATag.java
index d3d91e5..e94971c 100644
--- a/library/src/main/java/j2html/tags/specialized/ATag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/ATag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
import j2html.tags.attributes.*;
diff --git a/library/src/main/java/j2html/tags/specialized/AbbrTag.java b/library/src/main/java/j2html/tags/specialized/generated/AbbrTag.java
similarity index 77%
rename from library/src/main/java/j2html/tags/specialized/AbbrTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/AbbrTag.java
index 218ca30..67e227f 100644
--- a/library/src/main/java/j2html/tags/specialized/AbbrTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/AbbrTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
diff --git a/library/src/main/java/j2html/tags/specialized/AddressTag.java b/library/src/main/java/j2html/tags/specialized/generated/AddressTag.java
similarity index 78%
rename from library/src/main/java/j2html/tags/specialized/AddressTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/AddressTag.java
index 20179d9..678b4eb 100644
--- a/library/src/main/java/j2html/tags/specialized/AddressTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/AddressTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
diff --git a/library/src/main/java/j2html/tags/specialized/AreaTag.java b/library/src/main/java/j2html/tags/specialized/generated/AreaTag.java
similarity index 88%
rename from library/src/main/java/j2html/tags/specialized/AreaTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/AreaTag.java
index 7e0e166..8c41f67 100644
--- a/library/src/main/java/j2html/tags/specialized/AreaTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/AreaTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.EmptyTag;
import j2html.tags.attributes.*;
diff --git a/library/src/main/java/j2html/tags/specialized/ArticleTag.java b/library/src/main/java/j2html/tags/specialized/generated/ArticleTag.java
similarity index 78%
rename from library/src/main/java/j2html/tags/specialized/ArticleTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/ArticleTag.java
index b5abf71..730483f 100644
--- a/library/src/main/java/j2html/tags/specialized/ArticleTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/ArticleTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
diff --git a/library/src/main/java/j2html/tags/specialized/AsideTag.java b/library/src/main/java/j2html/tags/specialized/generated/AsideTag.java
similarity index 77%
rename from library/src/main/java/j2html/tags/specialized/AsideTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/AsideTag.java
index 08326cd..44390e1 100644
--- a/library/src/main/java/j2html/tags/specialized/AsideTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/AsideTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
diff --git a/library/src/main/java/j2html/tags/specialized/AudioTag.java b/library/src/main/java/j2html/tags/specialized/generated/AudioTag.java
similarity index 95%
rename from library/src/main/java/j2html/tags/specialized/AudioTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/AudioTag.java
index 4e35283..4483424 100644
--- a/library/src/main/java/j2html/tags/specialized/AudioTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/AudioTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
import j2html.tags.attributes.*;
diff --git a/library/src/main/java/j2html/tags/specialized/BTag.java b/library/src/main/java/j2html/tags/specialized/generated/BTag.java
similarity index 75%
rename from library/src/main/java/j2html/tags/specialized/BTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/BTag.java
index 3dd3977..ac5e264 100644
--- a/library/src/main/java/j2html/tags/specialized/BTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/BTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
diff --git a/library/src/main/java/j2html/tags/specialized/BaseTag.java b/library/src/main/java/j2html/tags/specialized/generated/BaseTag.java
similarity index 85%
rename from library/src/main/java/j2html/tags/specialized/BaseTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/BaseTag.java
index c157ae4..356aa00 100644
--- a/library/src/main/java/j2html/tags/specialized/BaseTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/BaseTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.EmptyTag;
import j2html.tags.attributes.IHref;
diff --git a/library/src/main/java/j2html/tags/specialized/BdiTag.java b/library/src/main/java/j2html/tags/specialized/generated/BdiTag.java
similarity index 77%
rename from library/src/main/java/j2html/tags/specialized/BdiTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/BdiTag.java
index cf947e5..b57e484 100644
--- a/library/src/main/java/j2html/tags/specialized/BdiTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/BdiTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
diff --git a/library/src/main/java/j2html/tags/specialized/BdoTag.java b/library/src/main/java/j2html/tags/specialized/generated/BdoTag.java
similarity index 77%
rename from library/src/main/java/j2html/tags/specialized/BdoTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/BdoTag.java
index e352bea..d196fde 100644
--- a/library/src/main/java/j2html/tags/specialized/BdoTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/BdoTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
diff --git a/library/src/main/java/j2html/tags/specialized/BlockquoteTag.java b/library/src/main/java/j2html/tags/specialized/generated/BlockquoteTag.java
similarity index 85%
rename from library/src/main/java/j2html/tags/specialized/BlockquoteTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/BlockquoteTag.java
index d1f0d0f..5e0ec61 100644
--- a/library/src/main/java/j2html/tags/specialized/BlockquoteTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/BlockquoteTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
import j2html.tags.attributes.ICite;
diff --git a/library/src/main/java/j2html/tags/specialized/BrTag.java b/library/src/main/java/j2html/tags/specialized/generated/BrTag.java
similarity index 75%
rename from library/src/main/java/j2html/tags/specialized/BrTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/BrTag.java
index 257fed2..cd52a56 100644
--- a/library/src/main/java/j2html/tags/specialized/BrTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/BrTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.EmptyTag;
diff --git a/library/src/main/java/j2html/tags/specialized/ButtonTag.java b/library/src/main/java/j2html/tags/specialized/generated/ButtonTag.java
similarity index 88%
rename from library/src/main/java/j2html/tags/specialized/ButtonTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/ButtonTag.java
index f235a93..22292c5 100644
--- a/library/src/main/java/j2html/tags/specialized/ButtonTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/ButtonTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
import j2html.tags.attributes.*;
diff --git a/library/src/main/java/j2html/tags/specialized/CanvasTag.java b/library/src/main/java/j2html/tags/specialized/generated/CanvasTag.java
similarity index 86%
rename from library/src/main/java/j2html/tags/specialized/CanvasTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/CanvasTag.java
index 7b5971f..069a973 100644
--- a/library/src/main/java/j2html/tags/specialized/CanvasTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/CanvasTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
import j2html.tags.attributes.IHeight;
diff --git a/library/src/main/java/j2html/tags/specialized/CaptionTag.java b/library/src/main/java/j2html/tags/specialized/generated/CaptionTag.java
similarity index 78%
rename from library/src/main/java/j2html/tags/specialized/CaptionTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/CaptionTag.java
index d9acf53..07728c0 100644
--- a/library/src/main/java/j2html/tags/specialized/CaptionTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/CaptionTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
diff --git a/library/src/main/java/j2html/tags/specialized/CiteTag.java b/library/src/main/java/j2html/tags/specialized/generated/CiteTag.java
similarity index 77%
rename from library/src/main/java/j2html/tags/specialized/CiteTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/CiteTag.java
index ab9a269..85ac4e4 100644
--- a/library/src/main/java/j2html/tags/specialized/CiteTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/CiteTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
diff --git a/library/src/main/java/j2html/tags/specialized/CodeTag.java b/library/src/main/java/j2html/tags/specialized/generated/CodeTag.java
similarity index 77%
rename from library/src/main/java/j2html/tags/specialized/CodeTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/CodeTag.java
index 6c98a55..bf44bc1 100644
--- a/library/src/main/java/j2html/tags/specialized/CodeTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/CodeTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
diff --git a/library/src/main/java/j2html/tags/specialized/ColTag.java b/library/src/main/java/j2html/tags/specialized/generated/ColTag.java
similarity index 82%
rename from library/src/main/java/j2html/tags/specialized/ColTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/ColTag.java
index 33e6d97..a7eb9f2 100644
--- a/library/src/main/java/j2html/tags/specialized/ColTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/ColTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.EmptyTag;
import j2html.tags.attributes.ISpan;
diff --git a/library/src/main/java/j2html/tags/specialized/ColgroupTag.java b/library/src/main/java/j2html/tags/specialized/generated/ColgroupTag.java
similarity index 84%
rename from library/src/main/java/j2html/tags/specialized/ColgroupTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/ColgroupTag.java
index aa71aaa..c0a7091 100644
--- a/library/src/main/java/j2html/tags/specialized/ColgroupTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/ColgroupTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
import j2html.tags.attributes.ISpan;
diff --git a/library/src/main/java/j2html/tags/specialized/DatalistTag.java b/library/src/main/java/j2html/tags/specialized/generated/DatalistTag.java
similarity index 79%
rename from library/src/main/java/j2html/tags/specialized/DatalistTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/DatalistTag.java
index c9245e8..9b42139 100644
--- a/library/src/main/java/j2html/tags/specialized/DatalistTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/DatalistTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
diff --git a/library/src/main/java/j2html/tags/specialized/DdTag.java b/library/src/main/java/j2html/tags/specialized/generated/DdTag.java
similarity index 76%
rename from library/src/main/java/j2html/tags/specialized/DdTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/DdTag.java
index 9531939..498a362 100644
--- a/library/src/main/java/j2html/tags/specialized/DdTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/DdTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
diff --git a/library/src/main/java/j2html/tags/specialized/DelTag.java b/library/src/main/java/j2html/tags/specialized/generated/DelTag.java
similarity index 86%
rename from library/src/main/java/j2html/tags/specialized/DelTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/DelTag.java
index b29ccaf..61b73eb 100644
--- a/library/src/main/java/j2html/tags/specialized/DelTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/DelTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
import j2html.tags.attributes.ICite;
diff --git a/library/src/main/java/j2html/tags/specialized/DetailsTag.java b/library/src/main/java/j2html/tags/specialized/generated/DetailsTag.java
similarity index 87%
rename from library/src/main/java/j2html/tags/specialized/DetailsTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/DetailsTag.java
index 19bb831..64d5126 100644
--- a/library/src/main/java/j2html/tags/specialized/DetailsTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/DetailsTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
import j2html.tags.attributes.IOntoggle;
diff --git a/library/src/main/java/j2html/tags/specialized/DfnTag.java b/library/src/main/java/j2html/tags/specialized/generated/DfnTag.java
similarity index 77%
rename from library/src/main/java/j2html/tags/specialized/DfnTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/DfnTag.java
index 4e890af..e515802 100644
--- a/library/src/main/java/j2html/tags/specialized/DfnTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/DfnTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
diff --git a/library/src/main/java/j2html/tags/specialized/DialogTag.java b/library/src/main/java/j2html/tags/specialized/generated/DialogTag.java
similarity index 78%
rename from library/src/main/java/j2html/tags/specialized/DialogTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/DialogTag.java
index b01cfa4..2cc7e09 100644
--- a/library/src/main/java/j2html/tags/specialized/DialogTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/DialogTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
diff --git a/library/src/main/java/j2html/tags/specialized/DivTag.java b/library/src/main/java/j2html/tags/specialized/generated/DivTag.java
similarity index 77%
rename from library/src/main/java/j2html/tags/specialized/DivTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/DivTag.java
index ebcd503..6740591 100644
--- a/library/src/main/java/j2html/tags/specialized/DivTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/DivTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
diff --git a/library/src/main/java/j2html/tags/specialized/DlTag.java b/library/src/main/java/j2html/tags/specialized/generated/DlTag.java
similarity index 76%
rename from library/src/main/java/j2html/tags/specialized/DlTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/DlTag.java
index 248c41a..93757df 100644
--- a/library/src/main/java/j2html/tags/specialized/DlTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/DlTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
diff --git a/library/src/main/java/j2html/tags/specialized/DtTag.java b/library/src/main/java/j2html/tags/specialized/generated/DtTag.java
similarity index 76%
rename from library/src/main/java/j2html/tags/specialized/DtTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/DtTag.java
index 2c96218..12c22bd 100644
--- a/library/src/main/java/j2html/tags/specialized/DtTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/DtTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
diff --git a/library/src/main/java/j2html/tags/specialized/EmTag.java b/library/src/main/java/j2html/tags/specialized/generated/EmTag.java
similarity index 76%
rename from library/src/main/java/j2html/tags/specialized/EmTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/EmTag.java
index 4200040..e3e9b52 100644
--- a/library/src/main/java/j2html/tags/specialized/EmTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/EmTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
diff --git a/library/src/main/java/j2html/tags/specialized/EmbedTag.java b/library/src/main/java/j2html/tags/specialized/generated/EmbedTag.java
similarity index 88%
rename from library/src/main/java/j2html/tags/specialized/EmbedTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/EmbedTag.java
index b9cf9c7..79d96c2 100644
--- a/library/src/main/java/j2html/tags/specialized/EmbedTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/EmbedTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.EmptyTag;
import j2html.tags.attributes.*;
diff --git a/library/src/main/java/j2html/tags/specialized/FieldsetTag.java b/library/src/main/java/j2html/tags/specialized/generated/FieldsetTag.java
similarity index 89%
rename from library/src/main/java/j2html/tags/specialized/FieldsetTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/FieldsetTag.java
index 9644fba..a3e262f 100644
--- a/library/src/main/java/j2html/tags/specialized/FieldsetTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/FieldsetTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
import j2html.tags.attributes.IDisabled;
diff --git a/library/src/main/java/j2html/tags/specialized/FigcaptionTag.java b/library/src/main/java/j2html/tags/specialized/generated/FigcaptionTag.java
similarity index 80%
rename from library/src/main/java/j2html/tags/specialized/FigcaptionTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/FigcaptionTag.java
index 9339d44..91e0587 100644
--- a/library/src/main/java/j2html/tags/specialized/FigcaptionTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/FigcaptionTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
diff --git a/library/src/main/java/j2html/tags/specialized/FigureTag.java b/library/src/main/java/j2html/tags/specialized/generated/FigureTag.java
similarity index 78%
rename from library/src/main/java/j2html/tags/specialized/FigureTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/FigureTag.java
index 15ffd4a..3d275f7 100644
--- a/library/src/main/java/j2html/tags/specialized/FigureTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/FigureTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
diff --git a/library/src/main/java/j2html/tags/specialized/FooterTag.java b/library/src/main/java/j2html/tags/specialized/generated/FooterTag.java
similarity index 78%
rename from library/src/main/java/j2html/tags/specialized/FooterTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/FooterTag.java
index b7c1586..19379ec 100644
--- a/library/src/main/java/j2html/tags/specialized/FooterTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/FooterTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
diff --git a/library/src/main/java/j2html/tags/specialized/FormTag.java b/library/src/main/java/j2html/tags/specialized/generated/FormTag.java
similarity index 89%
rename from library/src/main/java/j2html/tags/specialized/FormTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/FormTag.java
index 0dd431f..e12b7d0 100644
--- a/library/src/main/java/j2html/tags/specialized/FormTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/FormTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
import j2html.tags.attributes.*;
diff --git a/library/src/main/java/j2html/tags/specialized/GenerateTag.java b/library/src/main/java/j2html/tags/specialized/generated/GenerateTag.java
similarity index 79%
rename from library/src/main/java/j2html/tags/specialized/GenerateTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/GenerateTag.java
index cd9fe2e..38c6ca6 100644
--- a/library/src/main/java/j2html/tags/specialized/GenerateTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/GenerateTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
diff --git a/library/src/main/java/j2html/tags/specialized/H1Tag.java b/library/src/main/java/j2html/tags/specialized/generated/H1Tag.java
similarity index 76%
rename from library/src/main/java/j2html/tags/specialized/H1Tag.java
rename to library/src/main/java/j2html/tags/specialized/generated/H1Tag.java
index d2ce78f..9e0bd4a 100644
--- a/library/src/main/java/j2html/tags/specialized/H1Tag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/H1Tag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
diff --git a/library/src/main/java/j2html/tags/specialized/H2Tag.java b/library/src/main/java/j2html/tags/specialized/generated/H2Tag.java
similarity index 76%
rename from library/src/main/java/j2html/tags/specialized/H2Tag.java
rename to library/src/main/java/j2html/tags/specialized/generated/H2Tag.java
index b2967b0..453c00a 100644
--- a/library/src/main/java/j2html/tags/specialized/H2Tag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/H2Tag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
diff --git a/library/src/main/java/j2html/tags/specialized/H3Tag.java b/library/src/main/java/j2html/tags/specialized/generated/H3Tag.java
similarity index 76%
rename from library/src/main/java/j2html/tags/specialized/H3Tag.java
rename to library/src/main/java/j2html/tags/specialized/generated/H3Tag.java
index c8cc431..984a1ae 100644
--- a/library/src/main/java/j2html/tags/specialized/H3Tag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/H3Tag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
diff --git a/library/src/main/java/j2html/tags/specialized/H4Tag.java b/library/src/main/java/j2html/tags/specialized/generated/H4Tag.java
similarity index 76%
rename from library/src/main/java/j2html/tags/specialized/H4Tag.java
rename to library/src/main/java/j2html/tags/specialized/generated/H4Tag.java
index 65973e7..20dac32 100644
--- a/library/src/main/java/j2html/tags/specialized/H4Tag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/H4Tag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
diff --git a/library/src/main/java/j2html/tags/specialized/H5Tag.java b/library/src/main/java/j2html/tags/specialized/generated/H5Tag.java
similarity index 76%
rename from library/src/main/java/j2html/tags/specialized/H5Tag.java
rename to library/src/main/java/j2html/tags/specialized/generated/H5Tag.java
index 457aa38..cdd92da 100644
--- a/library/src/main/java/j2html/tags/specialized/H5Tag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/H5Tag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
diff --git a/library/src/main/java/j2html/tags/specialized/H6Tag.java b/library/src/main/java/j2html/tags/specialized/generated/H6Tag.java
similarity index 76%
rename from library/src/main/java/j2html/tags/specialized/H6Tag.java
rename to library/src/main/java/j2html/tags/specialized/generated/H6Tag.java
index b05e357..99b3165 100644
--- a/library/src/main/java/j2html/tags/specialized/H6Tag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/H6Tag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
diff --git a/library/src/main/java/j2html/tags/specialized/HeaderTag.java b/library/src/main/java/j2html/tags/specialized/generated/HeaderTag.java
similarity index 78%
rename from library/src/main/java/j2html/tags/specialized/HeaderTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/HeaderTag.java
index 1d9126d..72a4a18 100644
--- a/library/src/main/java/j2html/tags/specialized/HeaderTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/HeaderTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
diff --git a/library/src/main/java/j2html/tags/specialized/HrTag.java b/library/src/main/java/j2html/tags/specialized/generated/HrTag.java
similarity index 75%
rename from library/src/main/java/j2html/tags/specialized/HrTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/HrTag.java
index 82cb0ff..74d43b8 100644
--- a/library/src/main/java/j2html/tags/specialized/HrTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/HrTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.EmptyTag;
diff --git a/library/src/main/java/j2html/tags/specialized/ITag.java b/library/src/main/java/j2html/tags/specialized/generated/ITag.java
similarity index 75%
rename from library/src/main/java/j2html/tags/specialized/ITag.java
rename to library/src/main/java/j2html/tags/specialized/generated/ITag.java
index 631ddc5..73c50a1 100644
--- a/library/src/main/java/j2html/tags/specialized/ITag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/ITag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
diff --git a/library/src/main/java/j2html/tags/specialized/IframeTag.java b/library/src/main/java/j2html/tags/specialized/generated/IframeTag.java
similarity index 88%
rename from library/src/main/java/j2html/tags/specialized/IframeTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/IframeTag.java
index ab5b732..ba9053a 100644
--- a/library/src/main/java/j2html/tags/specialized/IframeTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/IframeTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
import j2html.tags.attributes.*;
diff --git a/library/src/main/java/j2html/tags/specialized/ImgTag.java b/library/src/main/java/j2html/tags/specialized/generated/ImgTag.java
similarity index 89%
rename from library/src/main/java/j2html/tags/specialized/ImgTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/ImgTag.java
index a43c35d..6f170b1 100644
--- a/library/src/main/java/j2html/tags/specialized/ImgTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/ImgTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.EmptyTag;
import j2html.tags.attributes.*;
diff --git a/library/src/main/java/j2html/tags/specialized/InputTag.java b/library/src/main/java/j2html/tags/specialized/generated/InputTag.java
similarity index 94%
rename from library/src/main/java/j2html/tags/specialized/InputTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/InputTag.java
index d210e56..546e45b 100644
--- a/library/src/main/java/j2html/tags/specialized/InputTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/InputTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.EmptyTag;
import j2html.tags.attributes.*;
diff --git a/library/src/main/java/j2html/tags/specialized/InsTag.java b/library/src/main/java/j2html/tags/specialized/generated/InsTag.java
similarity index 86%
rename from library/src/main/java/j2html/tags/specialized/InsTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/InsTag.java
index 4238cfb..5d6cac7 100644
--- a/library/src/main/java/j2html/tags/specialized/InsTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/InsTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
import j2html.tags.attributes.ICite;
diff --git a/library/src/main/java/j2html/tags/specialized/KbdTag.java b/library/src/main/java/j2html/tags/specialized/generated/KbdTag.java
similarity index 77%
rename from library/src/main/java/j2html/tags/specialized/KbdTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/KbdTag.java
index 3656c16..f1db3d4 100644
--- a/library/src/main/java/j2html/tags/specialized/KbdTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/KbdTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
diff --git a/library/src/main/java/j2html/tags/specialized/KeygenTag.java b/library/src/main/java/j2html/tags/specialized/generated/KeygenTag.java
similarity index 77%
rename from library/src/main/java/j2html/tags/specialized/KeygenTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/KeygenTag.java
index a956561..c508975 100644
--- a/library/src/main/java/j2html/tags/specialized/KeygenTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/KeygenTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.EmptyTag;
diff --git a/library/src/main/java/j2html/tags/specialized/LabelTag.java b/library/src/main/java/j2html/tags/specialized/generated/LabelTag.java
similarity index 86%
rename from library/src/main/java/j2html/tags/specialized/LabelTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/LabelTag.java
index 637b393..36dbb42 100644
--- a/library/src/main/java/j2html/tags/specialized/LabelTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/LabelTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
import j2html.tags.attributes.IFor;
diff --git a/library/src/main/java/j2html/tags/specialized/LegendTag.java b/library/src/main/java/j2html/tags/specialized/generated/LegendTag.java
similarity index 78%
rename from library/src/main/java/j2html/tags/specialized/LegendTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/LegendTag.java
index 0b634a0..9111d23 100644
--- a/library/src/main/java/j2html/tags/specialized/LegendTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/LegendTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
diff --git a/library/src/main/java/j2html/tags/specialized/LiTag.java b/library/src/main/java/j2html/tags/specialized/generated/LiTag.java
similarity index 82%
rename from library/src/main/java/j2html/tags/specialized/LiTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/LiTag.java
index e12ed41..b1d0405 100644
--- a/library/src/main/java/j2html/tags/specialized/LiTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/LiTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
import j2html.tags.attributes.IValue;
diff --git a/library/src/main/java/j2html/tags/specialized/LinkTag.java b/library/src/main/java/j2html/tags/specialized/generated/LinkTag.java
similarity index 87%
rename from library/src/main/java/j2html/tags/specialized/LinkTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/LinkTag.java
index ee7b3b1..ad5cd0f 100644
--- a/library/src/main/java/j2html/tags/specialized/LinkTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/LinkTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.EmptyTag;
import j2html.tags.attributes.*;
diff --git a/library/src/main/java/j2html/tags/specialized/MapTag.java b/library/src/main/java/j2html/tags/specialized/generated/MapTag.java
similarity index 83%
rename from library/src/main/java/j2html/tags/specialized/MapTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/MapTag.java
index c98e0ef..d39e022 100644
--- a/library/src/main/java/j2html/tags/specialized/MapTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/MapTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
import j2html.tags.attributes.IName;
diff --git a/library/src/main/java/j2html/tags/specialized/MarkTag.java b/library/src/main/java/j2html/tags/specialized/generated/MarkTag.java
similarity index 77%
rename from library/src/main/java/j2html/tags/specialized/MarkTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/MarkTag.java
index 2d437b1..40b6d4f 100644
--- a/library/src/main/java/j2html/tags/specialized/MarkTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/MarkTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
diff --git a/library/src/main/java/j2html/tags/specialized/MenuTag.java b/library/src/main/java/j2html/tags/specialized/generated/MenuTag.java
similarity index 83%
rename from library/src/main/java/j2html/tags/specialized/MenuTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/MenuTag.java
index 9c4863b..9f584b2 100644
--- a/library/src/main/java/j2html/tags/specialized/MenuTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/MenuTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
import j2html.tags.attributes.IType;
diff --git a/library/src/main/java/j2html/tags/specialized/MenuitemTag.java b/library/src/main/java/j2html/tags/specialized/generated/MenuitemTag.java
similarity index 79%
rename from library/src/main/java/j2html/tags/specialized/MenuitemTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/MenuitemTag.java
index 52942e6..eb5edcc 100644
--- a/library/src/main/java/j2html/tags/specialized/MenuitemTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/MenuitemTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
diff --git a/library/src/main/java/j2html/tags/specialized/MetaTag.java b/library/src/main/java/j2html/tags/specialized/generated/MetaTag.java
similarity index 88%
rename from library/src/main/java/j2html/tags/specialized/MetaTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/MetaTag.java
index 8626322..fcf7b24 100644
--- a/library/src/main/java/j2html/tags/specialized/MetaTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/MetaTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.EmptyTag;
import j2html.tags.attributes.ICharset;
diff --git a/library/src/main/java/j2html/tags/specialized/MeterTag.java b/library/src/main/java/j2html/tags/specialized/generated/MeterTag.java
similarity index 88%
rename from library/src/main/java/j2html/tags/specialized/MeterTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/MeterTag.java
index 7843860..0bccaab 100644
--- a/library/src/main/java/j2html/tags/specialized/MeterTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/MeterTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
import j2html.tags.attributes.*;
diff --git a/library/src/main/java/j2html/tags/specialized/NavTag.java b/library/src/main/java/j2html/tags/specialized/generated/NavTag.java
similarity index 77%
rename from library/src/main/java/j2html/tags/specialized/NavTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/NavTag.java
index b929063..197f764 100644
--- a/library/src/main/java/j2html/tags/specialized/NavTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/NavTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
diff --git a/library/src/main/java/j2html/tags/specialized/NoscriptTag.java b/library/src/main/java/j2html/tags/specialized/generated/NoscriptTag.java
similarity index 79%
rename from library/src/main/java/j2html/tags/specialized/NoscriptTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/NoscriptTag.java
index b111b47..ff51165 100644
--- a/library/src/main/java/j2html/tags/specialized/NoscriptTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/NoscriptTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
diff --git a/library/src/main/java/j2html/tags/specialized/ObjectTag.java b/library/src/main/java/j2html/tags/specialized/generated/ObjectTag.java
similarity index 90%
rename from library/src/main/java/j2html/tags/specialized/ObjectTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/ObjectTag.java
index f6adba9..11937e3 100644
--- a/library/src/main/java/j2html/tags/specialized/ObjectTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/ObjectTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
import j2html.tags.attributes.*;
diff --git a/library/src/main/java/j2html/tags/specialized/OlTag.java b/library/src/main/java/j2html/tags/specialized/generated/OlTag.java
similarity index 86%
rename from library/src/main/java/j2html/tags/specialized/OlTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/OlTag.java
index 3033394..7ad74bf 100644
--- a/library/src/main/java/j2html/tags/specialized/OlTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/OlTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
import j2html.tags.attributes.IReversed;
diff --git a/library/src/main/java/j2html/tags/specialized/OptgroupTag.java b/library/src/main/java/j2html/tags/specialized/generated/OptgroupTag.java
similarity index 87%
rename from library/src/main/java/j2html/tags/specialized/OptgroupTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/OptgroupTag.java
index df4369b..5c39abf 100644
--- a/library/src/main/java/j2html/tags/specialized/OptgroupTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/OptgroupTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
import j2html.tags.attributes.IDisabled;
diff --git a/library/src/main/java/j2html/tags/specialized/OptionTag.java b/library/src/main/java/j2html/tags/specialized/generated/OptionTag.java
similarity index 90%
rename from library/src/main/java/j2html/tags/specialized/OptionTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/OptionTag.java
index 48ef607..49c9b3f 100644
--- a/library/src/main/java/j2html/tags/specialized/OptionTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/OptionTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
import j2html.tags.attributes.IDisabled;
diff --git a/library/src/main/java/j2html/tags/specialized/OutputTag.java b/library/src/main/java/j2html/tags/specialized/generated/OutputTag.java
similarity index 88%
rename from library/src/main/java/j2html/tags/specialized/OutputTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/OutputTag.java
index 58689dc..74b179f 100644
--- a/library/src/main/java/j2html/tags/specialized/OutputTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/OutputTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
import j2html.tags.attributes.IFor;
diff --git a/library/src/main/java/j2html/tags/specialized/PTag.java b/library/src/main/java/j2html/tags/specialized/generated/PTag.java
similarity index 75%
rename from library/src/main/java/j2html/tags/specialized/PTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/PTag.java
index 6e02cd2..a3be284 100644
--- a/library/src/main/java/j2html/tags/specialized/PTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/PTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
diff --git a/library/src/main/java/j2html/tags/specialized/ParamTag.java b/library/src/main/java/j2html/tags/specialized/generated/ParamTag.java
similarity index 86%
rename from library/src/main/java/j2html/tags/specialized/ParamTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/ParamTag.java
index 0f71e26..570a2c9 100644
--- a/library/src/main/java/j2html/tags/specialized/ParamTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/ParamTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.EmptyTag;
import j2html.tags.attributes.IName;
diff --git a/library/src/main/java/j2html/tags/specialized/PreTag.java b/library/src/main/java/j2html/tags/specialized/generated/PreTag.java
similarity index 77%
rename from library/src/main/java/j2html/tags/specialized/PreTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/PreTag.java
index 4d1c060..4303051 100644
--- a/library/src/main/java/j2html/tags/specialized/PreTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/PreTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
diff --git a/library/src/main/java/j2html/tags/specialized/ProgressTag.java b/library/src/main/java/j2html/tags/specialized/generated/ProgressTag.java
similarity index 87%
rename from library/src/main/java/j2html/tags/specialized/ProgressTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/ProgressTag.java
index ed5ced1..ee67d06 100644
--- a/library/src/main/java/j2html/tags/specialized/ProgressTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/ProgressTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
import j2html.tags.attributes.IMax;
diff --git a/library/src/main/java/j2html/tags/specialized/QTag.java b/library/src/main/java/j2html/tags/specialized/generated/QTag.java
similarity index 82%
rename from library/src/main/java/j2html/tags/specialized/QTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/QTag.java
index 14fa883..cf6e4e6 100644
--- a/library/src/main/java/j2html/tags/specialized/QTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/QTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
import j2html.tags.attributes.ICite;
diff --git a/library/src/main/java/j2html/tags/specialized/RpTag.java b/library/src/main/java/j2html/tags/specialized/generated/RpTag.java
similarity index 76%
rename from library/src/main/java/j2html/tags/specialized/RpTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/RpTag.java
index c19ac18..cd3007d 100644
--- a/library/src/main/java/j2html/tags/specialized/RpTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/RpTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
diff --git a/library/src/main/java/j2html/tags/specialized/RtTag.java b/library/src/main/java/j2html/tags/specialized/generated/RtTag.java
similarity index 76%
rename from library/src/main/java/j2html/tags/specialized/RtTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/RtTag.java
index 016024f..9517078 100644
--- a/library/src/main/java/j2html/tags/specialized/RtTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/RtTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
diff --git a/library/src/main/java/j2html/tags/specialized/RubyTag.java b/library/src/main/java/j2html/tags/specialized/generated/RubyTag.java
similarity index 77%
rename from library/src/main/java/j2html/tags/specialized/RubyTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/RubyTag.java
index 841fa44..a4a1283 100644
--- a/library/src/main/java/j2html/tags/specialized/RubyTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/RubyTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
diff --git a/library/src/main/java/j2html/tags/specialized/STag.java b/library/src/main/java/j2html/tags/specialized/generated/STag.java
similarity index 75%
rename from library/src/main/java/j2html/tags/specialized/STag.java
rename to library/src/main/java/j2html/tags/specialized/generated/STag.java
index c0f1de5..7943382 100644
--- a/library/src/main/java/j2html/tags/specialized/STag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/STag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
diff --git a/library/src/main/java/j2html/tags/specialized/SampTag.java b/library/src/main/java/j2html/tags/specialized/generated/SampTag.java
similarity index 77%
rename from library/src/main/java/j2html/tags/specialized/SampTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/SampTag.java
index 8ce6681..dd855e1 100644
--- a/library/src/main/java/j2html/tags/specialized/SampTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/SampTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
diff --git a/library/src/main/java/j2html/tags/specialized/ScriptTag.java b/library/src/main/java/j2html/tags/specialized/generated/ScriptTag.java
similarity index 88%
rename from library/src/main/java/j2html/tags/specialized/ScriptTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/ScriptTag.java
index 47c3977..5207b41 100644
--- a/library/src/main/java/j2html/tags/specialized/ScriptTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/ScriptTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
import j2html.tags.attributes.*;
diff --git a/library/src/main/java/j2html/tags/specialized/SectionTag.java b/library/src/main/java/j2html/tags/specialized/generated/SectionTag.java
similarity index 78%
rename from library/src/main/java/j2html/tags/specialized/SectionTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/SectionTag.java
index 0a0d6d6..1a9c59e 100644
--- a/library/src/main/java/j2html/tags/specialized/SectionTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/SectionTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
diff --git a/library/src/main/java/j2html/tags/specialized/SelectTag.java b/library/src/main/java/j2html/tags/specialized/generated/SelectTag.java
similarity index 88%
rename from library/src/main/java/j2html/tags/specialized/SelectTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/SelectTag.java
index 9e3bb99..18584e9 100644
--- a/library/src/main/java/j2html/tags/specialized/SelectTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/SelectTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
import j2html.tags.attributes.*;
diff --git a/library/src/main/java/j2html/tags/specialized/SmallTag.java b/library/src/main/java/j2html/tags/specialized/generated/SmallTag.java
similarity index 77%
rename from library/src/main/java/j2html/tags/specialized/SmallTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/SmallTag.java
index 07f14e6..66e68ac 100644
--- a/library/src/main/java/j2html/tags/specialized/SmallTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/SmallTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
diff --git a/library/src/main/java/j2html/tags/specialized/SourceTag.java b/library/src/main/java/j2html/tags/specialized/generated/SourceTag.java
similarity index 87%
rename from library/src/main/java/j2html/tags/specialized/SourceTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/SourceTag.java
index 6707b42..9e03c10 100644
--- a/library/src/main/java/j2html/tags/specialized/SourceTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/SourceTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.EmptyTag;
import j2html.tags.attributes.*;
diff --git a/library/src/main/java/j2html/tags/specialized/SpanTag.java b/library/src/main/java/j2html/tags/specialized/generated/SpanTag.java
similarity index 77%
rename from library/src/main/java/j2html/tags/specialized/SpanTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/SpanTag.java
index 404c2c9..78a9697 100644
--- a/library/src/main/java/j2html/tags/specialized/SpanTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/SpanTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
diff --git a/library/src/main/java/j2html/tags/specialized/StrongTag.java b/library/src/main/java/j2html/tags/specialized/generated/StrongTag.java
similarity index 78%
rename from library/src/main/java/j2html/tags/specialized/StrongTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/StrongTag.java
index a82c59a..0488a52 100644
--- a/library/src/main/java/j2html/tags/specialized/StrongTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/StrongTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
diff --git a/library/src/main/java/j2html/tags/specialized/StyleTag.java b/library/src/main/java/j2html/tags/specialized/generated/StyleTag.java
similarity index 90%
rename from library/src/main/java/j2html/tags/specialized/StyleTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/StyleTag.java
index 4749005..e94953b 100644
--- a/library/src/main/java/j2html/tags/specialized/StyleTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/StyleTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
import j2html.tags.attributes.IMedia;
diff --git a/library/src/main/java/j2html/tags/specialized/SubTag.java b/library/src/main/java/j2html/tags/specialized/generated/SubTag.java
similarity index 77%
rename from library/src/main/java/j2html/tags/specialized/SubTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/SubTag.java
index 9895a6d..92fcb0a 100644
--- a/library/src/main/java/j2html/tags/specialized/SubTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/SubTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
diff --git a/library/src/main/java/j2html/tags/specialized/SummaryTag.java b/library/src/main/java/j2html/tags/specialized/generated/SummaryTag.java
similarity index 78%
rename from library/src/main/java/j2html/tags/specialized/SummaryTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/SummaryTag.java
index 08bcdf7..2344eab 100644
--- a/library/src/main/java/j2html/tags/specialized/SummaryTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/SummaryTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
diff --git a/library/src/main/java/j2html/tags/specialized/SupTag.java b/library/src/main/java/j2html/tags/specialized/generated/SupTag.java
similarity index 77%
rename from library/src/main/java/j2html/tags/specialized/SupTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/SupTag.java
index 6d5ae48..0288806 100644
--- a/library/src/main/java/j2html/tags/specialized/SupTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/SupTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
diff --git a/library/src/main/java/j2html/tags/specialized/TableTag.java b/library/src/main/java/j2html/tags/specialized/generated/TableTag.java
similarity index 77%
rename from library/src/main/java/j2html/tags/specialized/TableTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/TableTag.java
index 6036403..71ab04f 100644
--- a/library/src/main/java/j2html/tags/specialized/TableTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/TableTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
diff --git a/library/src/main/java/j2html/tags/specialized/TbodyTag.java b/library/src/main/java/j2html/tags/specialized/generated/TbodyTag.java
similarity index 77%
rename from library/src/main/java/j2html/tags/specialized/TbodyTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/TbodyTag.java
index a478a9a..8d20e15 100644
--- a/library/src/main/java/j2html/tags/specialized/TbodyTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/TbodyTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
diff --git a/library/src/main/java/j2html/tags/specialized/TdTag.java b/library/src/main/java/j2html/tags/specialized/generated/TdTag.java
similarity index 88%
rename from library/src/main/java/j2html/tags/specialized/TdTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/TdTag.java
index 99589c3..387b74e 100644
--- a/library/src/main/java/j2html/tags/specialized/TdTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/TdTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
import j2html.tags.attributes.IColspan;
diff --git a/library/src/main/java/j2html/tags/specialized/TextareaTag.java b/library/src/main/java/j2html/tags/specialized/generated/TextareaTag.java
similarity index 91%
rename from library/src/main/java/j2html/tags/specialized/TextareaTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/TextareaTag.java
index 250d3f0..73d49ca 100644
--- a/library/src/main/java/j2html/tags/specialized/TextareaTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/TextareaTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
import j2html.tags.attributes.*;
diff --git a/library/src/main/java/j2html/tags/specialized/TfootTag.java b/library/src/main/java/j2html/tags/specialized/generated/TfootTag.java
similarity index 77%
rename from library/src/main/java/j2html/tags/specialized/TfootTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/TfootTag.java
index fdea425..8e53d4c 100644
--- a/library/src/main/java/j2html/tags/specialized/TfootTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/TfootTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
diff --git a/library/src/main/java/j2html/tags/specialized/ThTag.java b/library/src/main/java/j2html/tags/specialized/generated/ThTag.java
similarity index 89%
rename from library/src/main/java/j2html/tags/specialized/ThTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/ThTag.java
index b4004d4..ac356f6 100644
--- a/library/src/main/java/j2html/tags/specialized/ThTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/ThTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
import j2html.tags.attributes.IColspan;
diff --git a/library/src/main/java/j2html/tags/specialized/TheadTag.java b/library/src/main/java/j2html/tags/specialized/generated/TheadTag.java
similarity index 77%
rename from library/src/main/java/j2html/tags/specialized/TheadTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/TheadTag.java
index 31108d3..1f1e508 100644
--- a/library/src/main/java/j2html/tags/specialized/TheadTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/TheadTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
diff --git a/library/src/main/java/j2html/tags/specialized/TimeTag.java b/library/src/main/java/j2html/tags/specialized/generated/TimeTag.java
similarity index 83%
rename from library/src/main/java/j2html/tags/specialized/TimeTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/TimeTag.java
index f2da8a8..e46f283 100644
--- a/library/src/main/java/j2html/tags/specialized/TimeTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/TimeTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
import j2html.tags.attributes.IDatetime;
diff --git a/library/src/main/java/j2html/tags/specialized/TitleTag.java b/library/src/main/java/j2html/tags/specialized/generated/TitleTag.java
similarity index 77%
rename from library/src/main/java/j2html/tags/specialized/TitleTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/TitleTag.java
index be8a55b..12534ee 100644
--- a/library/src/main/java/j2html/tags/specialized/TitleTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/TitleTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
diff --git a/library/src/main/java/j2html/tags/specialized/TrTag.java b/library/src/main/java/j2html/tags/specialized/generated/TrTag.java
similarity index 76%
rename from library/src/main/java/j2html/tags/specialized/TrTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/TrTag.java
index 4b825d3..6670235 100644
--- a/library/src/main/java/j2html/tags/specialized/TrTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/TrTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
diff --git a/library/src/main/java/j2html/tags/specialized/TrackTag.java b/library/src/main/java/j2html/tags/specialized/generated/TrackTag.java
similarity index 87%
rename from library/src/main/java/j2html/tags/specialized/TrackTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/TrackTag.java
index 3bc31e2..6c86c15 100644
--- a/library/src/main/java/j2html/tags/specialized/TrackTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/TrackTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.EmptyTag;
import j2html.tags.attributes.*;
diff --git a/library/src/main/java/j2html/tags/specialized/UTag.java b/library/src/main/java/j2html/tags/specialized/generated/UTag.java
similarity index 75%
rename from library/src/main/java/j2html/tags/specialized/UTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/UTag.java
index d961314..0ab68bd 100644
--- a/library/src/main/java/j2html/tags/specialized/UTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/UTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
diff --git a/library/src/main/java/j2html/tags/specialized/UlTag.java b/library/src/main/java/j2html/tags/specialized/generated/UlTag.java
similarity index 76%
rename from library/src/main/java/j2html/tags/specialized/UlTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/UlTag.java
index f56b641..e05590b 100644
--- a/library/src/main/java/j2html/tags/specialized/UlTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/UlTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
diff --git a/library/src/main/java/j2html/tags/specialized/VarTag.java b/library/src/main/java/j2html/tags/specialized/generated/VarTag.java
similarity index 77%
rename from library/src/main/java/j2html/tags/specialized/VarTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/VarTag.java
index 19b3fe6..5ebe620 100644
--- a/library/src/main/java/j2html/tags/specialized/VarTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/VarTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
diff --git a/library/src/main/java/j2html/tags/specialized/VideoTag.java b/library/src/main/java/j2html/tags/specialized/generated/VideoTag.java
similarity index 95%
rename from library/src/main/java/j2html/tags/specialized/VideoTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/VideoTag.java
index 142197f..af77aa8 100644
--- a/library/src/main/java/j2html/tags/specialized/VideoTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/VideoTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.ContainerTag;
import j2html.tags.attributes.*;
diff --git a/library/src/main/java/j2html/tags/specialized/WbrTag.java b/library/src/main/java/j2html/tags/specialized/generated/WbrTag.java
similarity index 75%
rename from library/src/main/java/j2html/tags/specialized/WbrTag.java
rename to library/src/main/java/j2html/tags/specialized/generated/WbrTag.java
index c3842b0..dc23732 100644
--- a/library/src/main/java/j2html/tags/specialized/WbrTag.java
+++ b/library/src/main/java/j2html/tags/specialized/generated/WbrTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.generated;
import j2html.tags.EmptyTag;
diff --git a/library/src/main/java/j2html/tags/specialized/BodyTag.java b/library/src/main/java/j2html/tags/specialized/manual/BodyTag.java
similarity index 78%
rename from library/src/main/java/j2html/tags/specialized/BodyTag.java
rename to library/src/main/java/j2html/tags/specialized/manual/BodyTag.java
index 7fde307..3d79eca 100644
--- a/library/src/main/java/j2html/tags/specialized/BodyTag.java
+++ b/library/src/main/java/j2html/tags/specialized/manual/BodyTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.manual;
import j2html.tags.ContainerTag;
diff --git a/library/src/main/java/j2html/tags/specialized/HeadTag.java b/library/src/main/java/j2html/tags/specialized/manual/HeadTag.java
similarity index 78%
rename from library/src/main/java/j2html/tags/specialized/HeadTag.java
rename to library/src/main/java/j2html/tags/specialized/manual/HeadTag.java
index c8340a1..d5ee18b 100644
--- a/library/src/main/java/j2html/tags/specialized/HeadTag.java
+++ b/library/src/main/java/j2html/tags/specialized/manual/HeadTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.manual;
import j2html.tags.ContainerTag;
diff --git a/library/src/main/java/j2html/tags/specialized/HtmlTag.java b/library/src/main/java/j2html/tags/specialized/manual/HtmlTag.java
similarity index 97%
rename from library/src/main/java/j2html/tags/specialized/HtmlTag.java
rename to library/src/main/java/j2html/tags/specialized/manual/HtmlTag.java
index 21f1e1c..ec7c0e5 100644
--- a/library/src/main/java/j2html/tags/specialized/HtmlTag.java
+++ b/library/src/main/java/j2html/tags/specialized/manual/HtmlTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.manual;
import j2html.tags.ContainerTag;
import j2html.tags.Tag;
diff --git a/library/src/main/java/j2html/tags/specialized/MainTag.java b/library/src/main/java/j2html/tags/specialized/manual/MainTag.java
similarity index 78%
rename from library/src/main/java/j2html/tags/specialized/MainTag.java
rename to library/src/main/java/j2html/tags/specialized/manual/MainTag.java
index 594adf6..8423f73 100644
--- a/library/src/main/java/j2html/tags/specialized/MainTag.java
+++ b/library/src/main/java/j2html/tags/specialized/manual/MainTag.java
@@ -1,4 +1,4 @@
-package j2html.tags.specialized;
+package j2html.tags.specialized.manual;
import j2html.tags.ContainerTag;
diff --git a/library/src/test/java/j2html/comparison/j2html/HelloWorld.java b/library/src/test/java/j2html/comparison/j2html/HelloWorld.java
index 7a7a889..e72f83c 100644
--- a/library/src/test/java/j2html/comparison/j2html/HelloWorld.java
+++ b/library/src/test/java/j2html/comparison/j2html/HelloWorld.java
@@ -1,7 +1,6 @@
package j2html.comparison.j2html;
-import j2html.tags.ContainerTag;
-import j2html.tags.specialized.HtmlTag;
+import j2html.tags.specialized.manual.HtmlTag;
import static j2html.TagCreator.attrs;
import static j2html.TagCreator.body;
diff --git a/library/src/test/java/j2html/comparison/j2html/Macros.java b/library/src/test/java/j2html/comparison/j2html/Macros.java
index 2b57977..94aaa9e 100644
--- a/library/src/test/java/j2html/comparison/j2html/Macros.java
+++ b/library/src/test/java/j2html/comparison/j2html/Macros.java
@@ -2,7 +2,7 @@ package j2html.comparison.j2html;
import j2html.tags.ContainerTag;
import j2html.tags.DomContent;
-import j2html.tags.specialized.HtmlTag;
+import j2html.tags.specialized.manual.HtmlTag;
import static j2html.TagCreator.attrs;
import static j2html.TagCreator.body;
diff --git a/library/src/test/java/j2html/tags/TagTest.java b/library/src/test/java/j2html/tags/TagTest.java
index d9f8d65..7872250 100644
--- a/library/src/test/java/j2html/tags/TagTest.java
+++ b/library/src/test/java/j2html/tags/TagTest.java
@@ -5,7 +5,7 @@ import j2html.model.DynamicHrefAttribute;
import java.io.File;
import java.io.FileWriter;
-import j2html.tags.specialized.HtmlTag;
+import j2html.tags.specialized.manual.HtmlTag;
import org.junit.Test;
import static j2html.TagCreator.body;
import static j2html.TagCreator.div;