Modularize the repo