Added initial implementation for feature D.
Finished feature D.
Merge branch 'featureD'