update by ksafe