added optional reactivity