Working on reorganizing so that we can have a clustered back-end.
This change should make it so that much of the code can be shared
between the unclustered and clustered systems.