rewriting provider