Split options across multiple files.

Results in a more modularized and workable code structure.
Split options across multiple files.

Results in more modularized and workable code structure.
Merge branch 'enhancements'