I prefer that you add a new method in Service, updateMember, to clarify the intent. Also modify Observable to support removal of observer. Service.removeMember and updateMember should properly remove their observable parent.