Split into several modules to optimize the JS code