Remove the Cache as non static and start to replace in various implementations.
Breaking down the BufferedStreamFactory so can UT test it and implement the non static Cache implementation.