Should this use `data` or `buf` ?  I think the latter?