fix some bugs, add more test and coverage
Merge branch 'soliury-master'