Use method not ivar
Chip away at init
Remove dead code
Refactoring towards immutable AST

This breaks the build. It's something subtle to do with how
step invocations are stored for backgrounds. Can you fix it?