Centralized the code for handling fallbackToWorkingCopy
Refactored so that all data sources use similar model objects.