First cut at a D ... implementation
Switch to OO implementation