Made Blob into Pimpl to better support language bindings