diff --git a/src/main/java/org/cyclonedx/model/OrganizationalEntity.java b/src/main/java/org/cyclonedx/model/OrganizationalEntity.java
index a5e83f7737..3f65764e44 100644
--- a/src/main/java/org/cyclonedx/model/OrganizationalEntity.java
+++ b/src/main/java/org/cyclonedx/model/OrganizationalEntity.java
@@ -31,11 +31,12 @@
 import java.util.Objects;
 
 import org.cyclonedx.Version;
+import org.cyclonedx.model.organization.PostalAddress;
 import org.cyclonedx.util.deserializer.OrganizationalEntityDeserializer;
 
 @JsonIgnoreProperties(ignoreUnknown = true)
 @JsonInclude(JsonInclude.Include.NON_EMPTY)
-@JsonPropertyOrder({"name", "url", "contact"})
+@JsonPropertyOrder({"name", "address", "url", "contact"})
 @JsonDeserialize(using = OrganizationalEntityDeserializer.class)
 public class OrganizationalEntity {
 
@@ -46,6 +47,9 @@ public class OrganizationalEntity {
 
     private String name;
 
+    @VersionFilter(Version.VERSION_16)
+    private PostalAddress address;
+
     private List<String> url;
     @JsonProperty("contact")
     private List<OrganizationalContact> contact;
@@ -95,6 +99,14 @@ public void setBomRef(final String bomRef) {
         this.bomRef = bomRef;
     }
 
+    public PostalAddress getAddress() {
+        return address;
+    }
+
+    public void setAddress(final PostalAddress address) {
+        this.address = address;
+    }
+
     @Override
     public boolean equals(Object o) {
         if (this == o) return true;
@@ -103,11 +115,12 @@ public boolean equals(Object o) {
         return Objects.equals(name, that.name) &&
                 Objects.equals(url, that.url) &&
                 Objects.equals(contact, that.contact) &&
+                Objects.equals(address, that.address) &&
                 Objects.equals(bomRef, that.bomRef);
     }
 
     @Override
     public int hashCode() {
-        return Objects.hash(name, url, contact, bomRef);
+        return Objects.hash(name, url, contact, bomRef, address);
     }
 }
diff --git a/src/main/java/org/cyclonedx/model/component/modelCard/Considerations.java b/src/main/java/org/cyclonedx/model/component/modelCard/Considerations.java
index e8f02bc7f3..14514b5bc8 100644
--- a/src/main/java/org/cyclonedx/model/component/modelCard/Considerations.java
+++ b/src/main/java/org/cyclonedx/model/component/modelCard/Considerations.java
@@ -6,7 +6,10 @@
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper;
 import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
+import org.cyclonedx.Version;
 import org.cyclonedx.model.ExtensibleElement;
+import org.cyclonedx.model.VersionFilter;
+import org.cyclonedx.model.component.modelCard.consideration.EnvironmentalConsideration;
 import org.cyclonedx.model.component.modelCard.consideration.FairnessAssessment;
 import org.cyclonedx.model.component.modelCard.consideration.Risk;
 
@@ -24,6 +27,8 @@ public class Considerations extends ExtensibleElement
 
   private List<Risk> ethicalConsiderations;
 
+  @VersionFilter(Version.VERSION_16)
+  private EnvironmentalConsideration environmentalConsiderations;
 
   private List<FairnessAssessment> fairnessAssessments;
 
@@ -86,4 +91,12 @@ public List<FairnessAssessment> getFairnessAssessments() {
   public void setFairnessAssessments(final List<FairnessAssessment> fairnessAssessments) {
     this.fairnessAssessments = fairnessAssessments;
   }
+
+  public EnvironmentalConsideration getEnvironmentalConsiderations() {
+    return environmentalConsiderations;
+  }
+
+  public void setEnvironmentalConsiderations(final EnvironmentalConsideration environmentalConsiderations) {
+    this.environmentalConsiderations = environmentalConsiderations;
+  }
 }
diff --git a/src/main/java/org/cyclonedx/model/component/modelCard/consideration/EnvironmentalConsideration.java b/src/main/java/org/cyclonedx/model/component/modelCard/consideration/EnvironmentalConsideration.java
new file mode 100644
index 0000000000..1dab7b9ab6
--- /dev/null
+++ b/src/main/java/org/cyclonedx/model/component/modelCard/consideration/EnvironmentalConsideration.java
@@ -0,0 +1,37 @@
+package org.cyclonedx.model.component.modelCard.consideration;
+
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper;
+import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
+import org.cyclonedx.model.Property;
+import org.cyclonedx.model.component.modelCard.consideration.consumption.EnergyConsumption;
+
+@JsonIgnoreProperties(ignoreUnknown = true)
+@JsonInclude(JsonInclude.Include.NON_EMPTY)
+public class EnvironmentalConsideration
+{
+  private List<EnergyConsumption> energyConsumptions;
+
+  private List<Property> properties;
+
+  public List<EnergyConsumption> getEnergyConsumptions() {
+    return energyConsumptions;
+  }
+
+  public void setEnergyConsumptions(final List<EnergyConsumption> energyConsumptions) {
+    this.energyConsumptions = energyConsumptions;
+  }
+
+  @JacksonXmlElementWrapper(localName = "properties")
+  @JacksonXmlProperty(localName = "property")
+  public List<Property> getProperties() {
+    return properties;
+  }
+
+  public void setProperties(final List<Property> properties) {
+    this.properties = properties;
+  }
+}
diff --git a/src/main/java/org/cyclonedx/model/component/modelCard/consideration/consumption/Activity.java b/src/main/java/org/cyclonedx/model/component/modelCard/consideration/consumption/Activity.java
new file mode 100644
index 0000000000..547abfd04c
--- /dev/null
+++ b/src/main/java/org/cyclonedx/model/component/modelCard/consideration/consumption/Activity.java
@@ -0,0 +1,35 @@
+package org.cyclonedx.model.component.modelCard.consideration.consumption;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+public enum Activity
+{
+  @JsonProperty("design")
+  DESIGN("design"),
+  @JsonProperty("data-collection")
+  DATA_COLLECTION("data-collection"),
+  @JsonProperty("data-preparation")
+  DATA_PREPARATION("data-preparation"),
+  @JsonProperty("training")
+  TRAINING("training"),
+  @JsonProperty("fine-tuning")
+  FINE_TUNING("fine-tuning"),
+  @JsonProperty("validation")
+  VALIDATION("validation"),
+  @JsonProperty("deployment")
+  DEPLOYMENT("deployment"),
+  @JsonProperty("inference")
+  INFERENCE("inference"),
+  @JsonProperty("other")
+  OTHER("other");
+
+  private final String name;
+
+  Activity(String name) {
+    this.name = name;
+  }
+
+  public String getName() {
+    return name;
+  }
+}
diff --git a/src/main/java/org/cyclonedx/model/component/modelCard/consideration/consumption/EnergyConsumption.java b/src/main/java/org/cyclonedx/model/component/modelCard/consideration/consumption/EnergyConsumption.java
new file mode 100644
index 0000000000..35c400dbaa
--- /dev/null
+++ b/src/main/java/org/cyclonedx/model/component/modelCard/consideration/consumption/EnergyConsumption.java
@@ -0,0 +1,75 @@
+package org.cyclonedx.model.component.modelCard.consideration.consumption;
+
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper;
+import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
+import org.cyclonedx.model.Property;
+import org.cyclonedx.model.component.modelCard.consideration.consumption.co2.CO2Measure;
+import org.cyclonedx.model.component.modelCard.consideration.consumption.energy.EnergyMeasure;
+import org.cyclonedx.model.component.modelCard.consideration.consumption.energy.EnergyProvider;
+
+@JsonIgnoreProperties(ignoreUnknown = true)
+@JsonInclude(JsonInclude.Include.NON_EMPTY)
+public class EnergyConsumption
+{
+  private Activity activity;
+  private List<EnergyProvider> energyProviders;
+  private EnergyMeasure activityEnergyCost;
+  private CO2Measure co2CostEquivalent;
+  private CO2Measure co2CostOffset;
+  private List<Property> properties;
+
+  public Activity getActivity() {
+    return activity;
+  }
+
+  public void setActivity(final Activity activity) {
+    this.activity = activity;
+  }
+
+  @JacksonXmlElementWrapper(useWrapping = false)
+  public List<EnergyProvider> getEnergyProviders() {
+    return energyProviders;
+  }
+
+  public void setEnergyProviders(final List<EnergyProvider> energyProviders) {
+    this.energyProviders = energyProviders;
+  }
+
+  public EnergyMeasure getActivityEnergyCost() {
+    return activityEnergyCost;
+  }
+
+  public void setActivityEnergyCost(final EnergyMeasure activityEnergyCost) {
+    this.activityEnergyCost = activityEnergyCost;
+  }
+
+  public CO2Measure getCo2CostEquivalent() {
+    return co2CostEquivalent;
+  }
+
+  public void setCo2CostEquivalent(final CO2Measure co2CostEquivalent) {
+    this.co2CostEquivalent = co2CostEquivalent;
+  }
+
+  public CO2Measure getCo2CostOffset() {
+    return co2CostOffset;
+  }
+
+  public void setCo2CostOffset(final CO2Measure co2CostOffset) {
+    this.co2CostOffset = co2CostOffset;
+  }
+
+  @JacksonXmlElementWrapper(localName = "properties")
+  @JacksonXmlProperty(localName = "property")
+  public List<Property> getProperties() {
+    return properties;
+  }
+
+  public void setProperties(final List<Property> properties) {
+    this.properties = properties;
+  }
+}
diff --git a/src/main/java/org/cyclonedx/model/component/modelCard/consideration/consumption/co2/CO2Measure.java b/src/main/java/org/cyclonedx/model/component/modelCard/consideration/consumption/co2/CO2Measure.java
new file mode 100644
index 0000000000..3e7c3e8a4c
--- /dev/null
+++ b/src/main/java/org/cyclonedx/model/component/modelCard/consideration/consumption/co2/CO2Measure.java
@@ -0,0 +1,28 @@
+package org.cyclonedx.model.component.modelCard.consideration.consumption.co2;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonInclude;
+
+@JsonIgnoreProperties(ignoreUnknown = true)
+@JsonInclude(JsonInclude.Include.NON_EMPTY)
+public class CO2Measure
+{
+  private double value;
+  private Unit unit;
+
+  public double getValue() {
+    return value;
+  }
+
+  public void setValue(final double value) {
+    this.value = value;
+  }
+
+  public Unit getUnit() {
+    return unit;
+  }
+
+  public void setUnit(final Unit unit) {
+    this.unit = unit;
+  }
+}
diff --git a/src/main/java/org/cyclonedx/model/component/modelCard/consideration/consumption/co2/Unit.java b/src/main/java/org/cyclonedx/model/component/modelCard/consideration/consumption/co2/Unit.java
new file mode 100644
index 0000000000..bc2ccb88ac
--- /dev/null
+++ b/src/main/java/org/cyclonedx/model/component/modelCard/consideration/consumption/co2/Unit.java
@@ -0,0 +1,19 @@
+package org.cyclonedx.model.component.modelCard.consideration.consumption.co2;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+public enum Unit
+{
+  @JsonProperty("tCO2eq")
+  TCO2EQ("tCO2eq");
+
+  private final String name;
+
+  Unit(String name) {
+    this.name = name;
+  }
+
+  public String getName() {
+    return name;
+  }
+}
diff --git a/src/main/java/org/cyclonedx/model/component/modelCard/consideration/consumption/energy/EnergyMeasure.java b/src/main/java/org/cyclonedx/model/component/modelCard/consideration/consumption/energy/EnergyMeasure.java
new file mode 100644
index 0000000000..946f1f3a4a
--- /dev/null
+++ b/src/main/java/org/cyclonedx/model/component/modelCard/consideration/consumption/energy/EnergyMeasure.java
@@ -0,0 +1,28 @@
+package org.cyclonedx.model.component.modelCard.consideration.consumption.energy;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonInclude;
+
+@JsonIgnoreProperties(ignoreUnknown = true)
+@JsonInclude(JsonInclude.Include.NON_EMPTY)
+public class EnergyMeasure
+{
+  private double value;
+  private Unit unit;
+
+  public double getValue() {
+    return value;
+  }
+
+  public void setValue(final double value) {
+    this.value = value;
+  }
+
+  public Unit getUnit() {
+    return unit;
+  }
+
+  public void setUnit(final Unit unit) {
+    this.unit = unit;
+  }
+}
diff --git a/src/main/java/org/cyclonedx/model/component/modelCard/consideration/consumption/energy/EnergyProvider.java b/src/main/java/org/cyclonedx/model/component/modelCard/consideration/consumption/energy/EnergyProvider.java
new file mode 100644
index 0000000000..08f200196e
--- /dev/null
+++ b/src/main/java/org/cyclonedx/model/component/modelCard/consideration/consumption/energy/EnergyProvider.java
@@ -0,0 +1,78 @@
+package org.cyclonedx.model.component.modelCard.consideration.consumption.energy;
+
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper;
+import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
+import org.cyclonedx.model.ExternalReference;
+import org.cyclonedx.model.OrganizationalEntity;
+import org.cyclonedx.util.deserializer.ExternalReferencesDeserializer;
+
+@JsonIgnoreProperties(ignoreUnknown = true)
+@JsonInclude(JsonInclude.Include.NON_EMPTY)
+public class EnergyProvider
+{
+  @JacksonXmlProperty(isAttribute = true, localName = "bom-ref")
+  @JsonProperty("bom-ref")
+  private String bomRef;
+  private String description;
+  private OrganizationalEntity organization;
+  private EnergySource energySource;
+  private EnergyMeasure energyProvided;
+  private List<ExternalReference> externalReferences;
+
+  public String getBomRef() {
+    return bomRef;
+  }
+
+  public void setBomRef(final String bomRef) {
+    this.bomRef = bomRef;
+  }
+
+  public String getDescription() {
+    return description;
+  }
+
+  public void setDescription(final String description) {
+    this.description = description;
+  }
+
+  public OrganizationalEntity getOrganization() {
+    return organization;
+  }
+
+  public void setOrganization(final OrganizationalEntity organization) {
+    this.organization = organization;
+  }
+
+  public EnergySource getEnergySource() {
+    return energySource;
+  }
+
+  public void setEnergySource(final EnergySource energySource) {
+    this.energySource = energySource;
+  }
+
+  public EnergyMeasure getEnergyProvided() {
+    return energyProvided;
+  }
+
+  public void setEnergyProvided(final EnergyMeasure energyProvided) {
+    this.energyProvided = energyProvided;
+  }
+
+  @JacksonXmlElementWrapper(localName = "externalReferences")
+  @JacksonXmlProperty(localName = "reference")
+  @JsonDeserialize(using = ExternalReferencesDeserializer.class)
+  public List<ExternalReference> getExternalReferences() {
+    return externalReferences;
+  }
+
+  public void setExternalReferences(final List<ExternalReference> externalReferences) {
+    this.externalReferences = externalReferences;
+  }
+}
diff --git a/src/main/java/org/cyclonedx/model/component/modelCard/consideration/consumption/energy/EnergySource.java b/src/main/java/org/cyclonedx/model/component/modelCard/consideration/consumption/energy/EnergySource.java
new file mode 100644
index 0000000000..c7b690bccd
--- /dev/null
+++ b/src/main/java/org/cyclonedx/model/component/modelCard/consideration/consumption/energy/EnergySource.java
@@ -0,0 +1,39 @@
+package org.cyclonedx.model.component.modelCard.consideration.consumption.energy;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+public enum EnergySource
+{
+  @JsonProperty("coal")
+  COAL("coal"),
+  @JsonProperty("oil")
+  OIL("oil"),
+  @JsonProperty("natural-gas")
+  NATURAL_GAS("natural-gas"),
+  @JsonProperty("nuclear")
+  NUCLEAR("nuclear"),
+  @JsonProperty("wind")
+  WIND("wind"),
+  @JsonProperty("solar")
+  SOLAR("solar"),
+  @JsonProperty("geothermal")
+  GEOTHERMAL("geothermal"),
+  @JsonProperty("hydropower")
+  HYDROPOWER("hydropower"),
+  @JsonProperty("biofuel")
+  BIOFUEL("biofuel"),
+  @JsonProperty("unknown")
+  UNKNOWN("unknown"),
+  @JsonProperty("other")
+  OTHER("other");
+
+  private final String name;
+
+  EnergySource(String name) {
+    this.name = name;
+  }
+
+  public String getName() {
+    return name;
+  }
+}
diff --git a/src/main/java/org/cyclonedx/model/component/modelCard/consideration/consumption/energy/Unit.java b/src/main/java/org/cyclonedx/model/component/modelCard/consideration/consumption/energy/Unit.java
new file mode 100644
index 0000000000..ad2ff3c21c
--- /dev/null
+++ b/src/main/java/org/cyclonedx/model/component/modelCard/consideration/consumption/energy/Unit.java
@@ -0,0 +1,19 @@
+package org.cyclonedx.model.component.modelCard.consideration.consumption.energy;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+public enum Unit
+{
+  @JsonProperty("kWh")
+  KWH("kWh");
+
+  private final String name;
+
+  Unit(String name) {
+    this.name = name;
+  }
+
+  public String getName() {
+    return name;
+  }
+}
diff --git a/src/main/java/org/cyclonedx/model/organization/PostalAddress.java b/src/main/java/org/cyclonedx/model/organization/PostalAddress.java
new file mode 100644
index 0000000000..f7063b71b0
--- /dev/null
+++ b/src/main/java/org/cyclonedx/model/organization/PostalAddress.java
@@ -0,0 +1,85 @@
+package org.cyclonedx.model.organization;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
+
+@JsonIgnoreProperties(ignoreUnknown = true)
+@JsonInclude(JsonInclude.Include.NON_EMPTY)
+@JsonPropertyOrder({"country", "region", "locality", "postOfficeBoxNumber", "postalCode", "streetAddress"})
+public class PostalAddress
+{
+  @JacksonXmlProperty(isAttribute = true, localName = "bom-ref")
+  @JsonProperty("bom-ref")
+  private String bomRef;
+
+  private String country;
+
+  private String region;
+
+  private String locality;
+
+  private String postOfficeBoxNumber;
+
+  private String postalCode;
+
+  private String streetAddress;
+
+  public String getBomRef() {
+    return bomRef;
+  }
+
+  public void setBomRef(final String bomRef) {
+    this.bomRef = bomRef;
+  }
+
+  public String getCountry() {
+    return country;
+  }
+
+  public void setCountry(final String country) {
+    this.country = country;
+  }
+
+  public String getRegion() {
+    return region;
+  }
+
+  public void setRegion(final String region) {
+    this.region = region;
+  }
+
+  public String getLocality() {
+    return locality;
+  }
+
+  public void setLocality(final String locality) {
+    this.locality = locality;
+  }
+
+  public String getPostOfficeBoxNumber() {
+    return postOfficeBoxNumber;
+  }
+
+  public void setPostOfficeBoxNumber(final String postOfficeBoxNumber) {
+    this.postOfficeBoxNumber = postOfficeBoxNumber;
+  }
+
+  public String getPostalCode() {
+    return postalCode;
+  }
+
+  public void setPostalCode(final String postalCode) {
+    this.postalCode = postalCode;
+  }
+
+  public String getStreetAddress() {
+    return streetAddress;
+  }
+
+  public void setStreetAddress(final String streetAddress) {
+    this.streetAddress = streetAddress;
+  }
+}
diff --git a/src/main/java/org/cyclonedx/util/deserializer/OrganizationalEntityDeserializer.java b/src/main/java/org/cyclonedx/util/deserializer/OrganizationalEntityDeserializer.java
index 56247e8aef..515a2d5f8f 100644
--- a/src/main/java/org/cyclonedx/util/deserializer/OrganizationalEntityDeserializer.java
+++ b/src/main/java/org/cyclonedx/util/deserializer/OrganizationalEntityDeserializer.java
@@ -6,12 +6,14 @@
 
 import com.fasterxml.jackson.core.ObjectCodec;
 import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.type.TypeReference;
 import com.fasterxml.jackson.databind.DeserializationContext;
 import com.fasterxml.jackson.databind.JsonDeserializer;
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import org.cyclonedx.model.OrganizationalContact;
 import org.cyclonedx.model.OrganizationalEntity;
+import org.cyclonedx.model.organization.PostalAddress;
 
 public class OrganizationalEntityDeserializer
     extends JsonDeserializer<OrganizationalEntity>
@@ -42,14 +44,24 @@ else if (urlNode.isTextual()) {
     OrganizationalEntity entity = new OrganizationalEntity();
     entity.setBomRef(bomRef);
     entity.setName(name);
-    entity.setUrls(url);
-    JsonNode contactNode = node.get("contact");
 
+    if (!url.isEmpty()) {
+      entity.setUrls(url);
+    }
+
+    JsonNode contactNode = node.get("contact");
     if (contactNode != null) {
       List<OrganizationalContact> contacts =
           MetadataDeserializer.deserializerOrganizationalContact(contactNode, mapper);
       entity.setContacts(contacts);
     }
+
+    JsonNode addressNode = node.get("address");
+    if (addressNode != null) {
+      PostalAddress address = mapper.convertValue(addressNode, new TypeReference<PostalAddress>() {});
+      entity.setAddress(address);
+    }
+
     return entity;
   }
 }
diff --git a/src/main/resources/bom-1.6.schema.json b/src/main/resources/bom-1.6.schema.json
index 5149d13f3e..a1a6e206d3 100644
--- a/src/main/resources/bom-1.6.schema.json
+++ b/src/main/resources/bom-1.6.schema.json
@@ -3795,7 +3795,7 @@
           "description": "The locality or city within the country.",
           "examples": [ "Austin" ]
         },
-        "postOfficeBoxNumber ": {
+        "postOfficeBoxNumber": {
           "type": "string",
           "title": "Post Office Box Number",
           "description": "The post office box number.",
