Add support for Buffer values, and unit tests to prove it works