Reasons For Factoring
Reduce module size
- Effective way to deal with a module that is too large.
- Stop factoring when you cannot find a well-defined function to factor out.
- Stop factoring when the interface to a module is as complicated as the module itself.