https://thecodecadence.medium.com/attribute-management-using-property-in-python-a-basic-guide-with-examples-43f486bf8d88