merge backend changes from Shen Jian