1. finish ver2
2. add test framework