https://medium.com/@aspteslia/creating-custom-higher-order-transforming-filter-for-diverse-purposes-in-swift-part-1-c85da913d055