I have a set of Components which properties should be changed by a Service. 
The Components have a very small model and are supposed to stay small. 
They are rendered with \*ngFor. 

The Service has a big Object and should know all components and be able to manipulate their properties. 

I have looked and tried out BehaviorSubjects a bit, but what seems a bit wrong to me, is that a small component would listen to a big object:

```
class Service{
    _bigModel: BehaviorSubject<object>
    bigObject: Observable<object> 
}

class Component{
   constructor(){
      bigObject.subscribe((newBigObject)=>{
          let partNeeded = newBigObject.key1.keya.blabla; 
          //...do sth with partNeeded; 
      }); 
   }
}

```

The disadvantages here: 

* Components will subscribe events that do not target the component.
* Possibly loads the model of the service into all small components,
blowing up the DOM. Dont know if the BehaviorSubject is handling
variable references etc.
* The need for the component to know the model of the Service in order to get what they need to work.

What I thought would make more sense is if the Service could manipulate Components directly: 

```
class Service{
    componentList: Component[]; //dunno the type of a Component
    changeComponent(idOfComponent, propertyToChange, value); 
    changeAllComponents(propertyToChange){
       for(c of componentList){
          let val = computeSomeValue(); 
          changeComponent(c, propertyToChange, val); 
       }
    }; 
}

class Component {
     someProperty: someType; 
     someOtherProperty: someType; 
}
//Template: 
<div [ngClass]="someOtherProperty">{{someProperty}}</div>

```

Is this apporach reasonable and possible? In this case, how can I manipulate a specific Component from a service? 
If not, what are better alternatives?