ticket4: finish
ticket:4 add test