Isn't easy to delegate all logic for update_dependent on scm driver instead of creating all those public methods?
All those methods should be protected and an only public one called update_dependent imo