Stage 2 Rewrite