diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -0,0 +1,5 @@
+# 0.1.1
+* Define `chat` lens for `Update` datatype
+* Add string identificator to `Callback` datatype
+* Define `Notification` datatype
+* Define `Droppable` typeclass
diff --git a/Network/Telegram/API/Bot/Capacity.hs b/Network/Telegram/API/Bot/Capacity.hs
--- a/Network/Telegram/API/Bot/Capacity.hs
+++ b/Network/Telegram/API/Bot/Capacity.hs
@@ -3,3 +3,4 @@
 import Network.Telegram.API.Bot.Capacity.Purgeable as Exports
 import Network.Telegram.API.Bot.Capacity.Postable as Exports
 import Network.Telegram.API.Bot.Capacity.Editable as Exports
+import Network.Telegram.API.Bot.Capacity.Droppable as Exports
diff --git a/Network/Telegram/API/Bot/Capacity/Droppable.hs b/Network/Telegram/API/Bot/Capacity/Droppable.hs
new file mode 100644
--- /dev/null
+++ b/Network/Telegram/API/Bot/Capacity/Droppable.hs
@@ -0,0 +1,28 @@
+module Network.Telegram.API.Bot.Capacity.Droppable (Droppable (..), Drop) where
+
+import "aeson" Data.Aeson (Value, decode)
+import "base" Control.Exception (try)
+import "base" Control.Monad (join, void)
+import "base" Data.Maybe (fromJust)
+import "http-client" Network.HTTP.Client (Response (responseBody))
+import "text" Data.Text (unpack)
+import "transformers" Control.Monad.Trans.Class (lift)
+import "transformers" Control.Monad.Trans.Except (ExceptT (ExceptT))
+import "transformers" Control.Monad.Trans.Reader (ask)
+
+import qualified "wreq" Network.Wreq.Session as Wreq (post)
+
+import Network.Telegram.API.Bot.Core (Telegram, Token (Token), Ok, result)
+
+type family Drop a = r | r -> a
+
+class Droppable a where
+	{-# MINIMAL drop_value, drop_endpoint #-}
+	drop_value :: Drop a -> Value
+	drop_endpoint :: Drop a -> String
+
+	drop :: Drop a -> Telegram e ()
+	drop x = snd <$> ask >>= \(session, Token token) -> void . lift . ExceptT . try
+		. fmap (fromJust . join . fmap result . decode @(Ok ()) . responseBody)
+			. flip (Wreq.post session) (drop_value x) $
+				"https://api.telegram.org/" <> unpack token <> "/" <> drop_endpoint x
diff --git a/Network/Telegram/API/Bot/Object.hs b/Network/Telegram/API/Bot/Object.hs
--- a/Network/Telegram/API/Bot/Object.hs
+++ b/Network/Telegram/API/Bot/Object.hs
@@ -1,9 +1,10 @@
 module Network.Telegram.API.Bot.Object (module Exports) where
 
-import Network.Telegram.API.Bot.Object.Chat as Exports
+import Network.Telegram.API.Bot.Object.Update as Exports
+import Network.Telegram.API.Bot.Object.Notification as Exports
+import Network.Telegram.API.Bot.Object.Message as Exports
+import Network.Telegram.API.Bot.Object.Keyboard as Exports
 import Network.Telegram.API.Bot.Object.From as Exports
-import Network.Telegram.API.Bot.Object.Button as Exports
+import Network.Telegram.API.Bot.Object.Chat as Exports
 import Network.Telegram.API.Bot.Object.Callback as Exports
-import Network.Telegram.API.Bot.Object.Keyboard as Exports
-import Network.Telegram.API.Bot.Object.Message as Exports
-import Network.Telegram.API.Bot.Object.Update as Exports
+import Network.Telegram.API.Bot.Object.Button as Exports
diff --git a/Network/Telegram/API/Bot/Object/Callback.hs b/Network/Telegram/API/Bot/Object/Callback.hs
--- a/Network/Telegram/API/Bot/Object/Callback.hs
+++ b/Network/Telegram/API/Bot/Object/Callback.hs
@@ -3,11 +3,10 @@
 import "aeson" Data.Aeson (FromJSON (parseJSON), withObject, (.:))
 import "text" Data.Text (Text)
 
-import Network.Telegram.API.Bot.Object.From (From)
 import Network.Telegram.API.Bot.Object.Message (Message)
 
-data Callback = Datatext From Message Text deriving Show
+data Callback = Datatext Text Message Text deriving Show
 
 instance FromJSON Callback where
 	parseJSON = withObject "Callback" $ \v ->
-		Datatext <$> v .: "from" <*> v .: "message" <*> v .: "data"
+		Datatext <$> v .: "id" <*> v .: "message" <*> v .: "data"
diff --git a/Network/Telegram/API/Bot/Object/Notification.hs b/Network/Telegram/API/Bot/Object/Notification.hs
new file mode 100644
--- /dev/null
+++ b/Network/Telegram/API/Bot/Object/Notification.hs
@@ -0,0 +1,16 @@
+module Network.Telegram.API.Bot.Object.Notification (Notification) where
+
+import "aeson" Data.Aeson (object, (.=))
+import "text" Data.Text (Text)
+
+import Network.Telegram.API.Bot.Capacity.Droppable
+	(Drop, Droppable (drop_value, drop_endpoint))
+
+data Notification
+
+type instance Drop Notification = (Text, Text)
+
+instance Droppable Notification where
+	drop_value (cbq_id, text) =
+		object ["callback_query_id" .= cbq_id, "text" .= text]
+	drop_endpoint _ = "answerCallbackQuery"
diff --git a/Network/Telegram/API/Bot/Object/Update.hs b/Network/Telegram/API/Bot/Object/Update.hs
--- a/Network/Telegram/API/Bot/Object/Update.hs
+++ b/Network/Telegram/API/Bot/Object/Update.hs
@@ -1,11 +1,13 @@
-module Network.Telegram.API.Bot.Object.Update (Update (..)) where
+module Network.Telegram.API.Bot.Object.Update (Update (..), chat) where
 
 import "aeson" Data.Aeson (FromJSON (parseJSON), withObject, (.:))
 import "aeson" Data.Aeson.Types (Object, Parser)
 import "base" Control.Applicative (Alternative ((<|>)))
+import "lens" Control.Lens (Lens')
 
-import Network.Telegram.API.Bot.Object.Callback (Callback)
-import Network.Telegram.API.Bot.Object.Message (Message)
+import Network.Telegram.API.Bot.Object.Callback (Callback (Datatext))
+import Network.Telegram.API.Bot.Object.Chat (Chat)
+import Network.Telegram.API.Bot.Object.Message (Message (Textual, Command))
 import Network.Telegram.API.Bot.Property.Identifiable
 	(Identifiable (identificator), Identificator)
 
@@ -28,3 +30,13 @@
 
 		incoming :: Object -> Parser Update
 		incoming v = Incoming <$> v .: "update_id" <*> v .: "message"
+
+chat :: Lens' Update Chat
+chat f (Incoming upd_id (Command msg_id chat_ from cmd)) =
+	(\chat' -> Incoming upd_id (Command msg_id chat' from cmd)) <$> f chat_
+chat f (Incoming upd_id (Textual msg_id chat_ from txt)) =
+	(\chat' -> Incoming upd_id (Textual msg_id chat' from txt)) <$> f chat_
+chat f (Query upd_id (Datatext cq_id (Command msg_id chat_ from cmd) dttxt)) =
+	(\chat' -> Query upd_id (Datatext cq_id (Command msg_id chat' from cmd) dttxt)) <$> f chat_
+chat f (Query upd_id (Datatext cq_id (Textual msg_id chat_ from txt) dttxt)) =
+	(\chat' -> Query upd_id (Datatext cq_id (Textual msg_id chat' from txt) dttxt)) <$> f chat_
diff --git a/telega.cabal b/telega.cabal
--- a/telega.cabal
+++ b/telega.cabal
@@ -1,5 +1,5 @@
 name:                telega
-version:             0.1.0
+version:             0.1.1
 synopsis:            Telegram Bot API binding
 description:         High-level bindings, typed entities, inline mode only
 homepage:            https://github.com/iokasimov/telega
@@ -28,8 +28,10 @@
     Network.Telegram.API.Bot.Object.Callback
     Network.Telegram.API.Bot.Object.Keyboard
     Network.Telegram.API.Bot.Object.Message
+    Network.Telegram.API.Bot.Object.Notification
     Network.Telegram.API.Bot.Object.Update
     Network.Telegram.API.Bot.Capacity
+    Network.Telegram.API.Bot.Capacity.Droppable
     Network.Telegram.API.Bot.Capacity.Editable
     Network.Telegram.API.Bot.Capacity.Postable
     Network.Telegram.API.Bot.Capacity.Purgeable
