modify and bug fix