revise propagate