remove unuse function
refactor
add Exception