delegate ddd