the accounting is probably wrong but
i now use both []byte slices of buffers. buffers for growing and slices to read rand into