rename method
do more refactor