add prettyprint
close #20