big rewrite step2