Single universal model to avoid duplicate data source calls via CanJS Model loads (this extends can.Model but there's really no reason at this point...). For cache-eligible data, presents an interface that can be configured to transparently cache or invalidate cache in local storage. Leverages Promises which return immediately to the caller, and then later resolves with either the data from the remote resource or the locally cached data. Public methods are available to configure common data sources via facade to the actual callers.