major project rewrite