rewrite for become 1.0 onChange support