Stage 3 Rewrite