I like the idea of having `Freeable`. `Buf` could also extend `Freeable` then we can handle `Buf` together.