rewriting entirely