let sn can work and add some dh code