``changed``, ``removed`` and ``observer`` could be private, no?