implement CPDI2, not done yet