backend: use modifyState