pass the underlying array of a slice to Buffer()

passing &data would pass the address of the Slice struct not the
underlying data... This will pass the pointer to the first element of
the slice, so it really will get the ptr to the start of the array...

im not sure if this is a good idea... but currently it seems to work.