close #39, close #40, close #38