fixing string vs keys vs outputstreams vs readers