In the first post in the series I gave an overview of the pattern we'll be using. This post will go deeper into the DataModel, as defined in the previous post: The DataModel is defined exactly as the Model in MVC; it is the data or business logic that stores the state and does processing of the problem domain. The DataModel abstracts expensive operations such as data fetching without blocking the UI thread. It can keep data "alive" fetching it periodically from source (example: stock ticket), merge information from several sources etc. The DataModel is completely UI independent and pretty much straightforward to unit test. The DataModel exposes data in a way that makes it easily consumable by IBF.