https://medium.com/@tahsinsoyakk/oop-python-2-understanding-inheritance-in-python-a-comprehensive-guide-with-examples-5d46f277c3d8