Uses strategy objects and maybe adapters to handle different data sources.
Uses strategy objects and maybe adapters to handle different data sources.