https://medium.com/@1809031104050311011804/365-days-of-python-day-50-meaningful-milestones-e2db8a914811