https://llego.dev/posts/defining-creating-classes-blueprints-objects-python/