Golden rule, in order not to get tangled code, always arrange them likea
tree, where either parent does work on child, or child does work on
parent, the flow cann't be interleaved.