add test
fix bug
first step finish