c0 rewrite