Added CachedDataViewModel, switched from flags to enum in DataViewModel, some other breaking changes.