pretty print
fixed #10
fixed #6
fixed #8
fixed #9
fixed #13
fixed #12
fixed #11
fixed #2
fixed #7
fixed #5
fixed #14