My question is mostly related to an architectural or design pattern for hierarchical models in Objective C. For background my app is relatively simple. In general it talks to a web service to retrieve and display things a user can follow. When someone follows something, the thing they are following is conceptually stored for access later by posting to the web service.

I would like advice on where the logic should go to manage the interaction between the web service and the group of things a user follows. 

For example, is it appropriate to create a model object like `MyStuffModel` with an array property named `followedThings` that holds references to `AThingModel` objects? And if so, would the logic for refreshing from the web service, etc be written and executed in the model? 

Potential code example

```
@interface MyStuffModel : NSObject

@property (nonatomic, strong) NSArray *followedThings;

- (void)refreshAllFollowedThingsFromWebService;

@end

@implementation MyStuffModel

- (void)refreshAllFollowedThingsFromWebService
{
    //call my API client (built on AFNetworking), get back a response
    //populate followedThings, notify a view controller, etc

}

@end

```

Or, should I not have a `MyStuffModel` object and manage the calls to my web service by calling my API client directly from a view controller? 

In your experience, which approach is desired? Or is there another way?