Complete rewrite step 1