- fix issues
- add test cases