joint_changes now returns a dict of tuples