refactor and bug fix
refactor and fix bug
change usage