ctd impl