sync with v3.0.x