Property<T> createProperty<T>(T value, bool isImmutable) { return isImmutable ? ImmutableProperty<T>(value) : MutableProperty<T>(value); }