https://mananjain0.medium.com/what-are-first-class-objects-and-how-are-they-related-to-scope-and-namespaces-in-python-programming-9c7229ab8d79