data_chaining unset_recursion
fix some bugs