https://medium.com/@everythingprogramming/introduction-to-object-oriented-programming-in-python-beb50f9b6542