diff --git a/TelegramBotBase/Form/SplitterForm.cs b/TelegramBotBase/Form/SplitterForm.cs
new file mode 100644
index 0000000..d547187
--- /dev/null
+++ b/TelegramBotBase/Form/SplitterForm.cs
@@ -0,0 +1,100 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using TelegramBotBase.Base;
+using static TelegramBotBase.Base.Async;
+
+namespace TelegramBotBase.Form
+{
+ ///
+ /// This is used to split incomming requests depending on the chat type.
+ ///
+ public class SplitterForm : FormBase
+ {
+
+ private static object __evOpenSupergroup = new object();
+ private static object __evOpenGroup = new object();
+ private static object __evOpenChannel = new object();
+ private static object __evOpen = new object();
+
+
+ public override async Task Load(MessageResult message)
+ {
+
+ if (message.Message.Chat.Type == Telegram.Bot.Types.Enums.ChatType.Channel)
+ {
+ if (await OpenChannel(message))
+ {
+ return;
+ }
+ }
+ if (message.Message.Chat.Type == Telegram.Bot.Types.Enums.ChatType.Supergroup)
+ {
+ if (await OpenSupergroup(message))
+ {
+ return;
+ }
+ if (await OpenGroup(message))
+ {
+ return;
+ }
+ }
+ if (message.Message.Chat.Type == Telegram.Bot.Types.Enums.ChatType.Group)
+ {
+ if (await OpenGroup(message))
+ {
+ return;
+ }
+ }
+
+ await Open(message);
+ }
+
+
+ public virtual async Task OpenSupergroup(MessageResult e)
+ {
+ return false;
+ }
+
+ public virtual async Task OpenChannel(MessageResult e)
+ {
+ return false;
+ }
+
+ public virtual async Task Open(MessageResult e)
+ {
+ return false;
+ }
+
+ public virtual async Task OpenGroup(MessageResult e)
+ {
+ return false;
+ }
+
+
+
+
+ public override Task Action(MessageResult message)
+ {
+ return base.Action(message);
+ }
+
+ public override Task PreLoad(MessageResult message)
+ {
+ return base.PreLoad(message);
+ }
+
+ public override Task Render(MessageResult message)
+ {
+ return base.Render(message);
+ }
+
+ public override Task SentData(DataResult message)
+ {
+ return base.SentData(message);
+ }
+
+ }
+}