Massive move of code to prep for rearch

Moved code into seperate singletons, until proper rearch.  First pass
to ensure properly decoupled code.