* add remote data source
* gather many functions to one module
* replace 'util.pump()' by 'readableStream.pipe(writableStream)'.