breaking out the structure into modules.