Currently when opening a data source, the buffer or stream property of the internal loader instance is set to the data source and then the open() method is called - this seems kind of unintuitive.
I propose to pass the input data source as parameter of the open() method. This way, opening a data source depends on a single method (open()) only, rather than the open() method and X setters (buffer, stream), one for each internal data source.