This was neat. Took a bit of trial and error at a few points, but very satisfying to finally figure out.