Add D3 -- Needs review

Creating this pull request to track development on this branch. It could use a lot of cleanup. I'll update when it's ready to merge.