This seems like an odd way of controlling the flow, how about breaking `Notify` up into several submethods and then calling the ones needed rather than having the `if !w.eagerRebuildMode()` in `Notify`?