It seems overly complex. Can't `change` event subscriptions be used instead?