How to split a single LocalScript-to-GUI into many

So far I have been using only one ScreenGui and one LocalScript which controls everything in the GUI, however, I want to split the single GUI into separate GUIs with separate scripts. Although a single script was messier, it made it easier to communicate changes between a shop and inventory for example.

The question is this: should every GUI have a LocalScript and the GUIs communicate changes like opening and closing by using BindableEvents or should I have a ModuleScript under each GUI and a LocalScript somewhere else requires them all?