optimization
Merge branch 'master' into nook
extracted InputStreamHolder interface
Merge branch 'master' into nook