Separating out Bam file ops from buffering to allow for future file formats