https://medium.com/@freddiebroxis/mastering-python-40-best-practices-every-developer-should-know-8a51045474