Rewrite the whole project's structure