TODO: Explain in detail why we chose a mono-repo and the current layout of our mono-repo