https://medium.com/@zaireali649/simple-introduction-to-object-oriented-programming-in-python-335b4bbb5dfe