I don't know if we can come up with a better way of doing this, but it would be awesome if we can remove the "collateral effect" programming style
So instead of setting values in the provider and calling instantiate (which will call further on the provider), maybe we can make things clearer if we set this values latter on as well.