diff --git a/clockblocker_bot/actions/basic.py b/clockblocker_bot/actions/basic.py
index 2a1112f14a3d0dda890bc6e3164a35af4d7d9893..7c3cc2ceec9ffccf49256453f963eed5986797d8 100644
--- a/clockblocker_bot/actions/basic.py
+++ b/clockblocker_bot/actions/basic.py
@@ -6,11 +6,11 @@ import re
 from datetime import datetime
 
 from clockblocker_bot.config import config
+from clockblocker_bot.utils.constants import CLOCKBLOCKER_ID, S3RIUS_ID
 from clockblocker_bot.utils.decorators import (
     beware_the_croud_policy,
     clean_up_policy,
-    ignore_clockblocker,
-    ignore_s3rius,
+    ignore_with_id,
     mark_unread,
 )
 from telethon import events
@@ -32,7 +32,7 @@ async def show_help(event: events.NewMessage.Event):
 @config.telegram_client.on(
     events.NewMessage(pattern=r"\W*[пП]+\s*[рР]+\s*[иИ]+\s*[вВ]+\s*[Ее]+\s*[тТ]+\W*")
 )
-@ignore_clockblocker
+@ignore_with_id(CLOCKBLOCKER_ID)
 @beware_the_croud_policy
 @mark_unread
 @clean_up_policy
@@ -42,13 +42,13 @@ async def ci(event: events.NewMessage.Event):
 
 @config.telegram_client.on(
     events.NewMessage(
-        pattern=re.compile(".*[Бб]ялдь.*", flags=re.DOTALL | re.MULTILINE),
+        pattern=re.compile(".*([Бб]ялдь|,zklm|[Бб]лядь).*", flags=re.DOTALL | re.MULTILINE),
         outgoing=True,
     )
 )
 @mark_unread
 async def blyad(event: events.NewMessage.Event):
-    permutations = set(["Блядь", "БлasDь", "лябдь", ",zklm", "блядь", "бляьд", "Бляьд"])
+    permutations = set(["Блядь", "БлasDь", "лябдь", ",zklm", "блядь", "Блядь", "бляьд", "Бляьд"])
     start_time = datetime.now()
     current_time = start_time
     last_blyad = event.message.message
@@ -68,8 +68,7 @@ async def reboot_advice(event: events.NewMessage.Event):
 
 
 @config.telegram_client.on(events.NewMessage(pattern=r"[\)\s]+"))
-@ignore_s3rius
-@ignore_clockblocker
+@ignore_with_id(S3RIUS_ID, CLOCKBLOCKER_ID)
 @clean_up_policy
 @mark_unread
 async def smile_back(event: events.NewMessage.Event):
diff --git a/clockblocker_bot/utils/decorators.py b/clockblocker_bot/utils/decorators.py
index 3b4b3bbba585be20420bcfba9949e2d953830485..fdd5c9c19d09af682756073313125eda26b0dcf4 100644
--- a/clockblocker_bot/utils/decorators.py
+++ b/clockblocker_bot/utils/decorators.py
@@ -10,31 +10,19 @@ logger = logging.getLogger(__name__)
 
 chat_union = Union[types.User, types.Chat, types.Channel]
 
-
-def ignore_clockblocker(f):
-    @functools.wraps(f)
-    async def wrapper(event: events.NewMessage.Event):
-        try:
-            if not event.message.from_id == CLOCKBLOCKER_ID:
-                await f(event)
-
-        except Exception as e:
-            logger.error(f"Exception found: {e}")
-
-    return wrapper
-
-
-def ignore_s3rius(f):
-    @functools.wraps(f)
-    async def wrapper(event: events.NewMessage.Event):
-        try:
-            if not event.message.from_id == S3RIUS_ID:
-                await f(event)
-        except Exception as e:
-            logger.error(f"Exception found: {e}")
-
-    return wrapper
-
+def ignore_with_id(*ids):
+    def ignore_inner(f):
+        @functools.wraps(f)
+        async def wrapper(event: events.NewMessage.Event):
+            try:
+                if not event.message.from_id.user_id in ids:
+                    await f(event)
+
+            except Exception as e:
+                logger.error(f"Exception found: {e}")
+
+        return wrapper
+    return ignore_inner
 
 def only_clockblocker(f):
     @functools.wraps(f)