for consistency, only trim out final toString result