adding a run length encoder/decoder