- some improvements and optimizations
- close #30 issue
- close #21 issue