encoders and buffers, may shift to using arraybuffers