some changes to solve some problems