f: rewrite