one step further using InputStreams