code: @ObjectiveCName("changeWithValue:")
      public boolean change(@Nullable T value) {
          if (this.value != null && value != null && value.equals(this.value)) {
              return false;
          }
  
          // No need in sync. We are not expected complex sync of value models
          this.value = value;
  
          notify(value);
  
          return true;
      }
docs: Changing value from any thread. We are not expect simulatenous updates from different threads,
  just only one thread
  
  @param value
  @return is value changed