refactoring
renamed
refactoring
add some comments