- enables removal of executor code - clarify flush guarantees
This helps to rationalize the inter-object dependencies.