code: private void throwExceptionIfTypeAlreadyExists() throws FrameworkException {
  
  		if (Services.getInstance().isInitialized() && ! Services.getInstance().isOverridingSchemaTypesAllowed()) {
  
  			final String typeName = getProperty(name);
  
  			// add type names to list of forbidden entity names
  			if (EntityNameBlacklist.contains(typeName)) {
  				throw new FrameworkException(422, "Type '" + typeName + "' already exists. To prevent unwanted/unexpected behavior this is forbidden.");
  			}
  
  			/*
  			// add type names to list of forbidden entity names
  			if (StructrApp.getConfiguration().getNodeEntities().containsKey(typeName)) {
  				throw new FrameworkException(422, "Type '" + typeName + "' already exists. To prevent unwanted/unexpected behavior this is forbidden.");
  			}
  
  			// add interfaces to list of forbidden entity names
  			if (StructrApp.getConfiguration().getInterfaces().containsKey(typeName)) {
  				throw new FrameworkException(422, "Type '" + typeName + "' already exists. To prevent unwanted/unexpected behavior this is forbidden.");
  			}
  			*/
  		}
  	}
docs: If the system is fully initialized (and no schema replacement is currently active), we disallow overriding (known) existing types so we can prevent unwanted behavior.
  If a user were to create a type 'Html', he could cripple Structrs Page rendering completely.
  This is a fix for all types in the Structr context - this does not help if the user creates a type named 'String' or 'Object'.
  That could still lead to unexpected behavior.
  
  @throws FrameworkException if a pre-existing type is encountered