"After about 20 years of development in the CD++ simulator, we decided to drop it and start from scratch. This talk is about why we decided to rewrite our simulation library in place of slowly migrating it to modern C++. How did our design evolve since we started rewriting? Where did we win the most? What did we learn from doing this rewrite (twice)?"