Adds DX, DL, DP, along with documentation.

This commit simply adds the classes. Nothing is changed in the source.

Supersedes #322, which was committed with an extra file.