[unfinished] Rewrite (2)