Bring back the abstraction for html attributes, create a separate model for Content and have TextContent be a constructor of it. Have Element's content be and optional either type.