- code refactoring
- fix unit tests