I've been teaching a fair amount, which means I've been revisiting my 'class problems' regularly. When I chose the problems, I thought that I understood them completely (hubris, I know) but now that I've worked them repeatedly I'm seeing new and surprising things. These new things have to do with the shape of code. Code can be written, or shaped, in many ways, and I've always believed that for a