add test
add test for argument
refactoring
add test