Listen to and propagate component changes