Dpc

Cheng Chang completed modularizing DPC code. We are ready for the code review. 

Dantong 
Cheng Chang
This is not a valid heading for numpydoc. 

Also, globals should be avoided (but I have not read enough of the code to understand why this is here yet).