In my opinion, it's better to keep this in the same file as Buffer, so that we can start thinking how we could share code between the two on a long lonely winter night.