divide modules to deal with CPU time