polished writeup, todo: write about frozen variables