differential key function