Remove InputStream wrapper, as generic wrapper can be used instead.
Construct wrapper with resource producer, so resource acquiring is
delayed till the open() method is called - to prevent resource leak in
case the wrapper construction fails (e.g. OOM)