redesign and rewrite