moved responsibility for dirty tracking.