Got really bored (plus this project is actually fun!), and finished part 4. Used a stack of lists and a list of lists to store the current blocks and all of the blocks, respectively. At the end, we just loop through the blocks and print info on their variables. Made functions to call when variables are written to or read to automatically update that info.