# Contracts that reference unobserved contracts

**URL:** <https://forum.canton.network/t/contracts-that-reference-unobserved-contracts/758>\
**Category:** App Development\
**Tags:** daml\
**Created:** [June 30, 2020, 2:11pm UTC](https://forum.canton.network/t/contracts-that-reference-unobserved-contracts/758 "2020-06-30T14:11:11Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

**Author:** ![Luciano](https://yyz2.discourse-cdn.com/flex034/user_avatar/forum.canton.network/luciano/32/319_2.png) [@Luciano](https://forum.canton.network/u/Luciano)\
**Post date:** [June 30, 2020, 3:09pm UTC](https://forum.canton.network/t/contracts-that-reference-unobserved-contracts/758/2 "2020-06-30T15:09:05Z")

</div>

Hi Alex, no worries, this is the place to ask questions! Beware you may get different answers here.

I would not go down the route of making the `ProductType` public. I think there is a simpler solution here. You could add a choice `CreateProduct: Product` on `ProductType`, and specifically use the [choice first syntax](https://docs.daml.com/daml/reference/choices.html#id12) to pass the producer as an argument to the choice - this way you don’t need to maintain an explicit list of observers.

However, you should ask yourself: _is every producer allowed to create every type of product_? If that is not the case, it would be better to maintain a list of parties on the `ProductType` template that are allowed to create that type of product. In this case, use the [controller first choice syntax](https://docs.daml.com/daml/reference/choices.html#id13) for your `CreateProduct` choice.

Btw the pattern that we’re using here is the ‘master agreement’ pattern. It has an analogue in real life. For instance, in finance/brokerage, a broker will have a ‘master agreement’ with a client. It will say in broad terms that they can agree to enter into an agreement to buy/sell securities with discretion; meaning, they don’t need to physically sign a contract every single time a new transaction takes place, but rather use the master contract to delegate this right. The same happens when you add observers to your `ProductType` contract - that is the act of the ‘admins’ (as you call them) delegating the producers the right to create new `Products` in future, without having to agree every single time.

Let me know if that answers your question.

---

_[View the full topic](https://forum.canton.network/t/contracts-that-reference-unobserved-contracts/758)._
