Initial, partial implementation of dependency propagation. This lays the groundwork, #876 completes it after some other fixes this uncovered.