source code for PPDM