Separate functionalities into multiple modules.