Dpc

Cheng Chang completed modularizing DPC code. We are ready for the code review. 

Dantong 
Cheng Chang
heading needs to be `Returns` for numpydoc