close #71

code refactor