split the gui into multiple modules