implement tree pprint