Python 23-30 are taken from: https://www.youtube.com/watch?v=8ext9G7xspg&t=3591s. This is a very helpful resource.