Refactored BamReader