some modify in character.h