2.0 rewrite