merge. close #7
formatted