rewriting from scratch.