Break into separate files.
Revert "Break into separate files."

This reverts commit 69247d95e089adb3fc4e6e3f7accdc8723117464.
Revert "Revert "Break into separate files.""

This reverts commit 8f93f6403e543b9a3822277ba565a07fe4c7b94e.
Have to add files first.
Break into separate files.