rename some var
add params for improvement