base function cahec_v1.0