change method name to `applyAction` or `applyOperation`?