add dpcm impl