add D function