Big refactoring to expose only 4 main modules