diff --git a/stix2/properties.py b/stix2/properties.py
index 24549aa..5e1b07f 100644
--- a/stix2/properties.py
+++ b/stix2/properties.py
@@ -11,7 +11,7 @@ import uuid
 from six import string_types, text_type
 from stix2patterns.validator import run_validator
 
-from .base import _STIXBase
+from .base import _Observable, _STIXBase
 from .core import STIX2_OBJ_MAPS, parse, parse_observable
 from .exceptions import CustomContentError, DictionaryKeyError
 from .utils import _get_dict, get_class_hierarchy_names, parse_into_datetime
@@ -167,6 +167,19 @@ class ListProperty(Property):
         return result
 
 
+class CallableValues(list):
+    """Wrapper to allow `values()` method on WindowsRegistryKey objects.
+    Needed because `values` is also a property.
+    """
+
+    def __init__(self, parent_instance, *args, **kwargs):
+        self.parent_instance = parent_instance
+        super(CallableValues, self).__init__(*args, **kwargs)
+
+    def __call__(self):
+        return _Observable.values(self.parent_instance)
+
+
 class StringProperty(Property):
 
     def __init__(self, **kwargs):
diff --git a/stix2/v20/observables.py b/stix2/v20/observables.py
index 0e7c4a0..55872cd 100644
--- a/stix2/v20/observables.py
+++ b/stix2/v20/observables.py
@@ -12,7 +12,7 @@ from ..base import _Extension, _Observable, _STIXBase
 from ..custom import _custom_extension_builder, _custom_observable_builder
 from ..exceptions import AtLeastOnePropertyError, DependentPropertiesError
 from ..properties import (
-    BinaryProperty, BooleanProperty, DictionaryProperty,
+    BinaryProperty, BooleanProperty, CallableValues, DictionaryProperty,
     EmbeddedObjectProperty, EnumProperty, ExtensionsProperty, FloatProperty,
     HashesProperty, HexProperty, IntegerProperty, ListProperty,
     ObjectReferenceProperty, StringProperty, TimestampProperty, TypeProperty,
@@ -726,7 +726,7 @@ class WindowsRegistryKey(_Observable):
     @property
     def values(self):
         # Needed because 'values' is a property on collections.Mapping objects
-        return self._inner['values']
+        return CallableValues(self, self._inner['values'])
 
 
 class X509V3ExtenstionsType(_STIXBase):
diff --git a/stix2/v21/observables.py b/stix2/v21/observables.py
index 1b2251d..f383899 100644
--- a/stix2/v21/observables.py
+++ b/stix2/v21/observables.py
@@ -12,7 +12,7 @@ from ..base import _Extension, _Observable, _STIXBase
 from ..custom import _custom_extension_builder, _custom_observable_builder
 from ..exceptions import AtLeastOnePropertyError, DependentPropertiesError
 from ..properties import (
-    BinaryProperty, BooleanProperty, DictionaryProperty,
+    BinaryProperty, BooleanProperty, CallableValues, DictionaryProperty,
     EmbeddedObjectProperty, EnumProperty, ExtensionsProperty, FloatProperty,
     HashesProperty, HexProperty, IntegerProperty, ListProperty,
     ObjectReferenceProperty, StringProperty, TimestampProperty, TypeProperty,
@@ -779,7 +779,7 @@ class WindowsRegistryKey(_Observable):
     @property
     def values(self):
         # Needed because 'values' is a property on collections.Mapping objects
-        return self._inner['values']
+        return CallableValues(self, self._inner['values'])
 
 
 class X509V3ExtenstionsType(_STIXBase):

WindowsRegistryKey fails to print
I am not sure if I am doing something wrong but trying to print a WindowsRegistryKey object always fails, even when using the provided example.

```
def test_key():
    v = stix2.v21.WindowsRegistryValueType(
        name="Foo",
        data="qwerty",
        data_type="REG_SZ",
    )
    w = stix2.v21.WindowsRegistryKey(
        key="hkey_local_machine\\system\\bar\\foo",
        values=[v],
    )
    print(v)
    print(w)
    assert w.key == "hkey_local_machine\\system\\bar\\foo"
    assert w.values[0].name == "Foo"
    assert w.values[0].data == "qwerty"
    assert w.values[0].data_type == "REG_SZ"
```
Output
```
{
    "name": "Foo",
    "data": "qwerty",
    "data_type": "REG_SZ"
}
Traceback (most recent call last):
  File "sandbox_to_stix.py", line 341, in <module>
    test_key()
  File "sandbox_to_stix.py", line 294, in test_key
    print(w)
  File "/home/timngo/venvs/stix/lib/python3.6/site-packages/stix2/base.py", line 206, in __str__
    return self.serialize(pretty=True)
  File "/home/timngo/venvs/stix/lib/python3.6/site-packages/stix2/base.py", line 284, in serialize
    return json.dumps(self, cls=STIXJSONEncoder, **kwargs)
  File "/home/timngo/venvs/stix/lib/python3.6/site-packages/simplejson/__init__.py", line 399, in dumps
    **kw).encode(obj)
  File "/home/timngo/venvs/stix/lib/python3.6/site-packages/simplejson/encoder.py", line 298, in encode
    chunks = list(chunks)
  File "/home/timngo/venvs/stix/lib/python3.6/site-packages/simplejson/encoder.py", line 717, in _iterencode
    for chunk in _iterencode(o, _current_indent_level):
  File "/home/timngo/venvs/stix/lib/python3.6/site-packages/simplejson/encoder.py", line 696, in _iterencode
    for chunk in _iterencode_dict(o, _current_indent_level):
  File "/home/timngo/venvs/stix/lib/python3.6/site-packages/simplejson/encoder.py", line 652, in _iterencode_dict
    for chunk in chunks:
  File "/home/timngo/venvs/stix/lib/python3.6/site-packages/simplejson/encoder.py", line 531, in _iterencode_list
    for chunk in chunks:
  File "/home/timngo/venvs/stix/lib/python3.6/site-packages/simplejson/encoder.py", line 717, in _iterencode
    for chunk in _iterencode(o, _current_indent_level):
  File "/home/timngo/venvs/stix/lib/python3.6/site-packages/simplejson/encoder.py", line 696, in _iterencode
    for chunk in _iterencode_dict(o, _current_indent_level):
  File "/home/timngo/venvs/stix/lib/python3.6/site-packages/simplejson/encoder.py", line 602, in _iterencode_dict
    items.sort(key=_item_sort_key)
  File "/home/timngo/venvs/stix/lib/python3.6/site-packages/stix2/base.py", line 277, in sort_by
    return find_property_index(self, *element)
  File "/home/timngo/venvs/stix/lib/python3.6/site-packages/stix2/utils.py", line 240, in find_property_index
    idx = _find_property_in_seq(obj.values(), search_key, search_value)
TypeError: 'list' object is not callable
```

I noticed that commenting out the values() getter function in stix2/v21/observables.py will get the print working but then the assert fails since there is no getter

```
class WindowsRegistryKey(_Observable):
    # TODO: Add link
    """For more detailed information on this object's properties, see
    `the STIX 2.1 specification <link here>`__.
    """

    _type = 'windows-registry-key'
    _properties = OrderedDict([
        ('type', TypeProperty(_type)),
        ('key', StringProperty()),
        ('values', ListProperty(EmbeddedObjectProperty(type=WindowsRegistryValueType))),
        # this is not the modified timestamps of the object itself
        ('modified', TimestampProperty()),
        ('creator_user_ref', ObjectReferenceProperty(valid_types='user-account')),
        ('number_of_subkeys', IntegerProperty()),
        ('extensions', ExtensionsProperty(spec_version='2.1', enclosing_type=_type)),
    ])

    #@property
    #def values(self):
        # Needed because 'values' is a property on collections.Mapping objects
    #    return self._inner['values']
```
New Output
```
{
    "name": "Foo",
    "data": "qwerty",
    "data_type": "REG_SZ"
}
{
    "type": "windows-registry-key",
    "key": "hkey_local_machine\\system\\bar\\foo",
    "values": [
        {
            "name": "Foo",
            "data": "qwerty",
            "data_type": "REG_SZ"
        }
    ]
}
Traceback (most recent call last):
  File "sandbox_to_stix.py", line 341, in <module>
    test_key()
  File "sandbox_to_stix.py", line 296, in test_key
    assert w.values[0].name == "Foo"
TypeError: 'method' object is not subscriptable
```
diff --git a/stix2/test/v20/test_observed_data.py b/stix2/test/v20/test_observed_data.py
index 41a80d6..190a1f0 100644
--- a/stix2/test/v20/test_observed_data.py
+++ b/stix2/test/v20/test_observed_data.py
@@ -1290,6 +1290,8 @@ def test_windows_registry_key_example():
     assert w.values[0].name == "Foo"
     assert w.values[0].data == "qwerty"
     assert w.values[0].data_type == "REG_SZ"
+    # ensure no errors in serialization because of 'values'
+    assert "Foo" in str(w)
 
 
 def test_x509_certificate_example():
diff --git a/stix2/test/v21/test_observed_data.py b/stix2/test/v21/test_observed_data.py
index 5a5881a..6d4eda8 100644
--- a/stix2/test/v21/test_observed_data.py
+++ b/stix2/test/v21/test_observed_data.py
@@ -1264,6 +1264,8 @@ def test_windows_registry_key_example():
     assert w.values[0].name == "Foo"
     assert w.values[0].data == "qwerty"
     assert w.values[0].data_type == "REG_SZ"
+    # ensure no errors in serialization because of 'values'
+    assert "Foo" in str(w)
 
 
 def test_x509_certificate_example():

pip install -e .
parse_log_pytest
requirements.txt
pytest pytest-cov coverage
3.6
requirements.txt
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
alabaster==0.7.13
antlr4-python3-runtime==4.9.3
async-generator==1.10
attrs==22.2.0
Babel==2.11.0
backcall==0.2.0
bleach==4.1.0
bump2version==1.0.1
bumpversion==0.6.0
certifi==2021.5.30
cfgv==3.3.1
charset-normalizer==2.0.12
coverage==6.2
decorator==5.1.1
defusedxml==0.7.1
distlib==0.3.9
docutils==0.18.1
entrypoints==0.4
filelock==3.4.1
identify==2.4.4
idna==3.10
imagesize==1.4.1
importlib-metadata==4.8.3
importlib-resources==5.2.3
iniconfig==1.1.1
ipython==7.16.3
ipython-genutils==0.2.0
jedi==0.17.2
Jinja2==3.0.3
jsonschema==3.2.0
jupyter-client==7.1.2
jupyter-core==4.9.2
jupyterlab-pygments==0.1.2
MarkupSafe==2.0.1
mistune==0.8.4
nbclient==0.5.9
nbconvert==6.0.7
nbformat==5.1.3
nbsphinx==0.3.2
nest-asyncio==1.6.0
nodeenv==1.6.0
packaging==21.3
pandocfilters==1.5.1
parso==0.7.1
pexpect==4.9.0
pickleshare==0.7.5
platformdirs==2.4.0
pluggy==1.0.0
pre-commit==2.17.0
prompt-toolkit==3.0.36
ptyprocess==0.7.0
py==1.11.0
Pygments==2.14.0
pyparsing==3.1.4
pyrsistent==0.18.0
pytest==7.0.1
pytest-cov==4.0.0
python-dateutil==2.9.0.post0
pytz==2025.2
PyYAML==6.0.1
pyzmq==25.1.2
requests==2.27.1
simplejson==3.20.1
six==1.17.0
snowballstemmer==2.2.0
Sphinx==1.5.6
sphinx-prompt==1.5.0
-e git+https://github.com/oasis-open/cti-python-stix2.git@06e23b08b8877bedc909889800682eec16a219c9#egg=stix2
stix2-patterns==2.0.0
testpath==0.6.0
toml==0.10.2
tomli==1.2.3
tornado==6.1
tox==3.28.0
traitlets==4.3.3
typing_extensions==4.1.1
urllib3==1.26.20
virtualenv==20.16.2
wcwidth==0.2.13
webencodings==0.5.1
zipp==3.6.0

name: cti-python-stix2
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - certifi=2021.5.30=py36h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.3=he6710b0_2
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=1.1.1w=h7f8727e_0
  - pip=21.2.2=py36h06a4308_0
  - python=3.6.13=h12debd9_1
  - readline=8.2=h5eee18b_0
  - setuptools=58.0.4=py36h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - wheel=0.37.1=pyhd3eb1b0_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - alabaster==0.7.13
      - antlr4-python3-runtime==4.9.3
      - async-generator==1.10
      - attrs==22.2.0
      - babel==2.11.0
      - backcall==0.2.0
      - bleach==4.1.0
      - bump2version==1.0.1
      - bumpversion==0.6.0
      - cfgv==3.3.1
      - charset-normalizer==2.0.12
      - coverage==6.2
      - decorator==5.1.1
      - defusedxml==0.7.1
      - distlib==0.3.9
      - docutils==0.18.1
      - entrypoints==0.4
      - filelock==3.4.1
      - identify==2.4.4
      - idna==3.10
      - imagesize==1.4.1
      - importlib-metadata==4.8.3
      - importlib-resources==5.2.3
      - iniconfig==1.1.1
      - ipython==7.16.3
      - ipython-genutils==0.2.0
      - jedi==0.17.2
      - jinja2==3.0.3
      - jsonschema==3.2.0
      - jupyter-client==7.1.2
      - jupyter-core==4.9.2
      - jupyterlab-pygments==0.1.2
      - markupsafe==2.0.1
      - mistune==0.8.4
      - nbclient==0.5.9
      - nbconvert==6.0.7
      - nbformat==5.1.3
      - nbsphinx==0.3.2
      - nest-asyncio==1.6.0
      - nodeenv==1.6.0
      - packaging==21.3
      - pandocfilters==1.5.1
      - parso==0.7.1
      - pexpect==4.9.0
      - pickleshare==0.7.5
      - platformdirs==2.4.0
      - pluggy==1.0.0
      - pre-commit==2.17.0
      - prompt-toolkit==3.0.36
      - ptyprocess==0.7.0
      - py==1.11.0
      - pygments==2.14.0
      - pyparsing==3.1.4
      - pyrsistent==0.18.0
      - pytest==7.0.1
      - pytest-cov==4.0.0
      - python-dateutil==2.9.0.post0
      - pytz==2025.2
      - pyyaml==6.0.1
      - pyzmq==25.1.2
      - requests==2.27.1
      - simplejson==3.20.1
      - six==1.17.0
      - snowballstemmer==2.2.0
      - sphinx==1.5.6
      - sphinx-prompt==1.5.0
      - stix2-patterns==2.0.0
      - testpath==0.6.0
      - toml==0.10.2
      - tomli==1.2.3
      - tornado==6.1
      - tox==3.28.0
      - traitlets==4.3.3
      - typing-extensions==4.1.1
      - urllib3==1.26.20
      - virtualenv==20.16.2
      - wcwidth==0.2.13
      - webencodings==0.5.1
      - zipp==3.6.0
prefix: /opt/conda/envs/cti-python-stix2

stix2/test/v20/test_observed_data.py::test_windows_registry_key_example stix2/test/v21/test_observed_data.py::test_windows_registry_key_example
stix2/test/v20/test_observed_data.py::test_observed_data_example stix2/test/v20/test_observed_data.py::test_observed_data_example_with_refs stix2/test/v20/test_observed_data.py::test_observed_data_example_with_bad_refs stix2/test/v20/test_observed_data.py::test_observed_data_example_with_non_dictionary stix2/test/v20/test_observed_data.py::test_observed_data_example_with_empty_dictionary stix2/test/v20/test_observed_data.py::test_parse_observed_data[{\n stix2/test/v20/test_observed_data.py::test_parse_observed_data[data1] stix2/test/v20/test_observed_data.py::test_parse_artifact_valid["0": stix2/test/v20/test_observed_data.py::test_parse_artifact_invalid["0": stix2/test/v20/test_observed_data.py::test_artifact_example_dependency_error stix2/test/v20/test_observed_data.py::test_parse_autonomous_system_valid["0": stix2/test/v20/test_observed_data.py::test_parse_email_address[{\n stix2/test/v20/test_observed_data.py::test_parse_email_message[\n stix2/test/v20/test_observed_data.py::test_parse_email_message_not_multipart[\n stix2/test/v20/test_observed_data.py::test_parse_file_archive["0": stix2/test/v20/test_observed_data.py::test_parse_email_message_with_at_least_one_error[\n stix2/test/v20/test_observed_data.py::test_parse_basic_tcp_traffic[\n stix2/test/v20/test_observed_data.py::test_parse_basic_tcp_traffic_with_error[\n stix2/test/v20/test_observed_data.py::test_observed_data_with_process_example stix2/test/v20/test_observed_data.py::test_artifact_example stix2/test/v20/test_observed_data.py::test_artifact_mutual_exclusion_error stix2/test/v20/test_observed_data.py::test_directory_example stix2/test/v20/test_observed_data.py::test_directory_example_ref_error stix2/test/v20/test_observed_data.py::test_domain_name_example stix2/test/v20/test_observed_data.py::test_domain_name_example_invalid_ref_type stix2/test/v20/test_observed_data.py::test_file_example stix2/test/v20/test_observed_data.py::test_file_example_with_NTFSExt stix2/test/v20/test_observed_data.py::test_file_example_with_empty_NTFSExt stix2/test/v20/test_observed_data.py::test_file_example_with_PDFExt stix2/test/v20/test_observed_data.py::test_file_example_with_PDFExt_Object stix2/test/v20/test_observed_data.py::test_file_example_with_RasterImageExt_Object stix2/test/v20/test_observed_data.py::test_raster_image_ext_parse stix2/test/v20/test_observed_data.py::test_raster_images_ext_create stix2/test/v20/test_observed_data.py::test_file_example_with_WindowsPEBinaryExt stix2/test/v20/test_observed_data.py::test_file_example_encryption_error stix2/test/v20/test_observed_data.py::test_ip4_address_example stix2/test/v20/test_observed_data.py::test_ip4_address_example_cidr stix2/test/v20/test_observed_data.py::test_ip6_address_example stix2/test/v20/test_observed_data.py::test_mac_address_example stix2/test/v20/test_observed_data.py::test_network_traffic_example stix2/test/v20/test_observed_data.py::test_network_traffic_http_request_example stix2/test/v20/test_observed_data.py::test_network_traffic_icmp_example stix2/test/v20/test_observed_data.py::test_network_traffic_socket_example stix2/test/v20/test_observed_data.py::test_network_traffic_tcp_example stix2/test/v20/test_observed_data.py::test_mutex_example stix2/test/v20/test_observed_data.py::test_process_example stix2/test/v20/test_observed_data.py::test_process_example_empty_error stix2/test/v20/test_observed_data.py::test_process_example_empty_with_extensions stix2/test/v20/test_observed_data.py::test_process_example_windows_process_ext stix2/test/v20/test_observed_data.py::test_process_example_windows_process_ext_empty stix2/test/v20/test_observed_data.py::test_process_example_extensions_empty stix2/test/v20/test_observed_data.py::test_process_example_with_WindowsProcessExt_Object stix2/test/v20/test_observed_data.py::test_process_example_with_WindowsServiceExt stix2/test/v20/test_observed_data.py::test_process_example_with_WindowsProcessServiceExt stix2/test/v20/test_observed_data.py::test_software_example stix2/test/v20/test_observed_data.py::test_url_example stix2/test/v20/test_observed_data.py::test_user_account_example stix2/test/v20/test_observed_data.py::test_user_account_unix_account_ext_example stix2/test/v20/test_observed_data.py::test_x509_certificate_example stix2/test/v20/test_observed_data.py::test_new_version_with_related_objects stix2/test/v21/test_observed_data.py::test_observed_data_example stix2/test/v21/test_observed_data.py::test_observed_data_example_with_refs stix2/test/v21/test_observed_data.py::test_observed_data_example_with_bad_refs stix2/test/v21/test_observed_data.py::test_observed_data_example_with_non_dictionary stix2/test/v21/test_observed_data.py::test_observed_data_example_with_empty_dictionary stix2/test/v21/test_observed_data.py::test_parse_observed_data[{\n stix2/test/v21/test_observed_data.py::test_parse_observed_data[data1] stix2/test/v21/test_observed_data.py::test_parse_artifact_valid["0": stix2/test/v21/test_observed_data.py::test_parse_artifact_invalid["0": stix2/test/v21/test_observed_data.py::test_artifact_example_dependency_error stix2/test/v21/test_observed_data.py::test_parse_autonomous_system_valid["0": stix2/test/v21/test_observed_data.py::test_parse_email_address[{\n stix2/test/v21/test_observed_data.py::test_parse_email_message[\n stix2/test/v21/test_observed_data.py::test_parse_email_message_not_multipart[\n stix2/test/v21/test_observed_data.py::test_parse_file_archive["0": stix2/test/v21/test_observed_data.py::test_parse_email_message_with_at_least_one_error[\n stix2/test/v21/test_observed_data.py::test_parse_basic_tcp_traffic[\n stix2/test/v21/test_observed_data.py::test_parse_basic_tcp_traffic_with_error[\n stix2/test/v21/test_observed_data.py::test_observed_data_with_process_example stix2/test/v21/test_observed_data.py::test_artifact_example stix2/test/v21/test_observed_data.py::test_artifact_mutual_exclusion_error stix2/test/v21/test_observed_data.py::test_directory_example stix2/test/v21/test_observed_data.py::test_directory_example_ref_error stix2/test/v21/test_observed_data.py::test_domain_name_example stix2/test/v21/test_observed_data.py::test_domain_name_example_invalid_ref_type stix2/test/v21/test_observed_data.py::test_file_example stix2/test/v21/test_observed_data.py::test_file_example_with_NTFSExt stix2/test/v21/test_observed_data.py::test_file_example_with_empty_NTFSExt stix2/test/v21/test_observed_data.py::test_file_example_with_PDFExt stix2/test/v21/test_observed_data.py::test_file_example_with_PDFExt_Object stix2/test/v21/test_observed_data.py::test_file_example_with_RasterImageExt_Object stix2/test/v21/test_observed_data.py::test_raster_image_ext_parse stix2/test/v21/test_observed_data.py::test_raster_images_ext_create stix2/test/v21/test_observed_data.py::test_file_example_with_WindowsPEBinaryExt stix2/test/v21/test_observed_data.py::test_file_example_encryption_error stix2/test/v21/test_observed_data.py::test_ip4_address_example stix2/test/v21/test_observed_data.py::test_ip4_address_example_cidr stix2/test/v21/test_observed_data.py::test_ip6_address_example stix2/test/v21/test_observed_data.py::test_mac_address_example stix2/test/v21/test_observed_data.py::test_network_traffic_example stix2/test/v21/test_observed_data.py::test_network_traffic_http_request_example stix2/test/v21/test_observed_data.py::test_network_traffic_icmp_example stix2/test/v21/test_observed_data.py::test_network_traffic_socket_example stix2/test/v21/test_observed_data.py::test_network_traffic_tcp_example stix2/test/v21/test_observed_data.py::test_mutex_example stix2/test/v21/test_observed_data.py::test_process_example stix2/test/v21/test_observed_data.py::test_process_example_empty_error stix2/test/v21/test_observed_data.py::test_process_example_empty_with_extensions stix2/test/v21/test_observed_data.py::test_process_example_windows_process_ext stix2/test/v21/test_observed_data.py::test_process_example_windows_process_ext_empty stix2/test/v21/test_observed_data.py::test_process_example_extensions_empty stix2/test/v21/test_observed_data.py::test_process_example_with_WindowsProcessExt_Object stix2/test/v21/test_observed_data.py::test_process_example_with_WindowsServiceExt stix2/test/v21/test_observed_data.py::test_process_example_with_WindowsProcessServiceExt stix2/test/v21/test_observed_data.py::test_software_example stix2/test/v21/test_observed_data.py::test_url_example stix2/test/v21/test_observed_data.py::test_user_account_example stix2/test/v21/test_observed_data.py::test_user_account_unix_account_ext_example stix2/test/v21/test_observed_data.py::test_x509_certificate_example stix2/test/v21/test_observed_data.py::test_new_version_with_related_objects
stix2/v21/observables.py stix2/v20/observables.py stix2/properties.py
stix2/v21/observables.py stix2/v20/observables.py stix2/properties.py