Split the code in modules to make it scalable