Note that I'm not up-calling the activate/deactivate to ChangeSource base ... I'm not sure if I should add that to all the subclasses, or if we just expect that CS base doesnt do anything, and subclasses dont have to up-call. I'm on the fence and open to suggestion!