You are using a shared_ptr for m_body, but there really aren't any other classes that share ownership of the htslib memory (as there are with SamBody) -- are there plans to implement classes that actually claim co-ownership of m_body? If not, then it's not actually a "shared" pointer