ex 1 2 3
test improvement and refactor