no need for converting to StringIO here