ctd impl.