implements dm