About 1/3 through refactoring. Added TODOs where questions/concerns came
up. 

Some areas of each file may still be incomplete.