Added comments and added the custom pretty_print method back in.