optional to_s method override