add: fix and improvement, close #110, close #109