don't need separate methods for CanonicalDP/DF