Factor into modules.