allowing Data.new to accept StringIO instances