support to_s and inspect