public async Task RemoveModifierAsync(NaheulbookExecutionContext executionContext, int monsterId, int modifierId)
        {
            using (var uow = _unitOfWorkFactory.CreateUnitOfWork())
            {
                var monster = await uow.Monsters.GetWithGroupAsync(monsterId);

                if (monster == null)
                {
                    throw new MonsterNotFoundException(monsterId);
                }

                _authorizationUtil.EnsureIsGroupOwner(executionContext, monster.Group);

                var modifiers = _jsonUtil.Deserialize <List <ActiveStatsModifier> >(monster.Modifiers) ?? new List <ActiveStatsModifier>();
                _activeStatsModifierUtil.RemoveModifier(modifiers, modifierId);
                monster.Modifiers = _jsonUtil.Serialize(modifiers);

                await uow.SaveChangesAsync();

                var notificationSession = _notificationSessionFactory.CreateSession();
                notificationSession.NotifyMonsterRemoveModifier(monster.Id, modifierId);
                await notificationSession.CommitAsync();
            }
        }