https://llego.dev/posts/practical-guide-iterating-manipulating-data-in-python/