further rewrite, shifting
further rewrite, shifting