project rewritten