using StringIO now