Buffer now works, and has error indication.
It even uses memcpy!