ENH: Initial commit of new PR re: dpc

@tacaswell Why do we have to separate modules for the dpc calculation into different scripts? Is it better to keep all the modules within dpc.py?