sync with 1.0 branch