Major rework of the modules to use some ideas.