rewrite SourceObjects.h/cpp to reflect the new architecture