Major reorganization of source
Major reorganizaton of source
Revert "Major reorganizaton of source"

This reverts commit 33e0a44673754f0855c9ace4c1c33bf033a7eded.