This was pretty challenging - there are some differences to the other versions that I'll point out in a future breakdown.