private void Awake()
 {
     Displayer = GetComponent <T1>();
     if (ProviderObject != null)
     {
         if (Provider != null)
         {
             Debug.LogWarning($"Provider: {Provider} is being overriden by Provided GameObject");
         }
         Provider = ProviderObject as IValueProvider <T>;
         Provider.SubscribeToProvider(this);
     }
 }
 public void Subscribe(IValueProvider <T> provider)
 {
     Provider = provider;
     Provider.SubscribeToProvider(this);
 }