fn_refactor