Use a value to represent the first pass (which we need to know for the implementation of live objects)
Add a way for behaviours to declare dependencies on one another