computations working across component boundaries. slightly naive implementation for now
initialise observers before registering them, to trigger creation of mappings