rewrite funcs #2