diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,3 +3,9 @@
 * Add string identificator to `Callback` datatype
 * Define `Notification` datatype
 * Define `Droppable` typeclass
+
+# 0.1.2
+* Define `Member` datatype
+* Add new `Membership` constructor to `Update` datatype
+* Define `Has` typeclass to get access objects within other objects
+* Replace `chat` lens on `Has Update Chat` instance
diff --git a/Network/Telegram/API/Bot.hs b/Network/Telegram/API/Bot.hs
--- a/Network/Telegram/API/Bot.hs
+++ b/Network/Telegram/API/Bot.hs
@@ -3,4 +3,5 @@
 import Network.Telegram.API.Bot.Property as Exports
 import Network.Telegram.API.Bot.Capacity as Exports
 import Network.Telegram.API.Bot.Object as Exports
+import Network.Telegram.API.Bot.Has as Exports
 import Network.Telegram.API.Bot.Core as Exports
diff --git a/Network/Telegram/API/Bot/Has.hs b/Network/Telegram/API/Bot/Has.hs
new file mode 100644
--- /dev/null
+++ b/Network/Telegram/API/Bot/Has.hs
@@ -0,0 +1,6 @@
+module Network.Telegram.API.Bot.Has (Has (..)) where
+
+import "lens" Control.Lens (Lens')
+
+class Has source target where
+	focus :: Lens' source target
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
@@ -2,6 +2,7 @@
 
 import Network.Telegram.API.Bot.Object.Update as Exports
 import Network.Telegram.API.Bot.Object.Notification as Exports
+import Network.Telegram.API.Bot.Object.Member 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
diff --git a/Network/Telegram/API/Bot/Object/Member.hs b/Network/Telegram/API/Bot/Object/Member.hs
new file mode 100644
--- /dev/null
+++ b/Network/Telegram/API/Bot/Object/Member.hs
@@ -0,0 +1,19 @@
+module Network.Telegram.API.Bot.Object.Member (Member (..)) where
+
+import "aeson" Data.Aeson (FromJSON (parseJSON), withObject, (.:))
+import "aeson" Data.Aeson.Types (Object, Parser)
+import "base" Control.Applicative (Alternative ((<|>)))
+
+import Network.Telegram.API.Bot.Object.Chat (Chat)
+import Network.Telegram.API.Bot.Object.From (From)
+
+data Member = Gone Chat From | Joined Chat [From] deriving Show
+
+instance FromJSON Member where
+	parseJSON = withObject "Member" $ \v -> gone v <|> joined v where
+
+		gone :: Object -> Parser Member
+		gone v = Gone <$> v .: "chat" <*> v .: "left_chat_member"
+
+		joined :: Object -> Parser Member
+		joined v = Joined <$> v .: "chat" <*> v .: "new_chat_members"
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,42 +1,54 @@
-module Network.Telegram.API.Bot.Object.Update (Update (..), chat) where
+module Network.Telegram.API.Bot.Object.Update (Update (..)) 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.Has (Has (focus))
 import Network.Telegram.API.Bot.Object.Callback (Callback (Datatext))
 import Network.Telegram.API.Bot.Object.Chat (Chat)
+import Network.Telegram.API.Bot.Object.Member (Member (Gone, Joined))
 import Network.Telegram.API.Bot.Object.Message (Message (Textual, Command))
 import Network.Telegram.API.Bot.Property.Identifiable
 	(Identifiable (identificator), Identificator)
 
 data Update
-	= Incoming Int Message
-	| Query Int Callback
+	= Query Int Callback
+	| Membership Int Member
+	| Incoming Int Message
 	deriving Show
 
 type instance Identificator Update = Int
 
 instance Identifiable Update where
-	identificator (Incoming i _) = i
 	identificator (Query i _) = i
+	identificator (Membership i _) = i
+	identificator (Incoming i _) = i
 
 instance FromJSON Update where
-	parseJSON = withObject "Update" $ \v -> query v <|> incoming v where
+	parseJSON = withObject "Update" $ \v ->
+		query v <|> membership v <|> incoming v where
 
 		query :: Object -> Parser Update
 		query v = Query <$> v .: "update_id" <*> v .: "callback_query"
 
+		membership :: Object -> Parser Update
+		membership v = Membership <$> v .: "update_id" <*> v .: "message"
+
 		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_
+instance Has Update Chat where
+	focus f (Incoming upd_id (Command msg_id chat_ from cmd)) =
+		(\chat' -> Incoming upd_id (Command msg_id chat' from cmd)) <$> f chat_
+	focus f (Incoming upd_id (Textual msg_id chat_ from txt)) =
+		(\chat' -> Incoming upd_id (Textual msg_id chat' from txt)) <$> f chat_
+	focus 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_
+	focus 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_
+	focus f (Membership upd_id (Gone chat_ users)) =
+		(\chat' -> Membership upd_id (Gone chat' users)) <$> f chat_
+	focus f (Membership upd_id (Joined chat_ users)) =
+		(\chat' -> Membership upd_id (Joined chat' users)) <$> 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.1
+version:             0.1.2
 synopsis:            Telegram Bot API binding
 description:         High-level bindings, typed entities, inline mode only
 homepage:            https://github.com/iokasimov/telega
@@ -21,12 +21,14 @@
   exposed-modules:
     Network.Telegram.API.Bot
     Network.Telegram.API.Bot.Core
+    Network.Telegram.API.Bot.Has
     Network.Telegram.API.Bot.Object
     Network.Telegram.API.Bot.Object.Chat
     Network.Telegram.API.Bot.Object.From
     Network.Telegram.API.Bot.Object.Button
     Network.Telegram.API.Bot.Object.Callback
     Network.Telegram.API.Bot.Object.Keyboard
+    Network.Telegram.API.Bot.Object.Member
     Network.Telegram.API.Bot.Object.Message
     Network.Telegram.API.Bot.Object.Notification
     Network.Telegram.API.Bot.Object.Update
@@ -38,15 +40,8 @@
     Network.Telegram.API.Bot.Property
     Network.Telegram.API.Bot.Property.Identifiable
   build-depends: base == 4.*, transformers, lens, aeson, text, http-client, wreq
-  default-extensions:
-    DataKinds
-    LambdaCase
-    OverloadedStrings
-    PackageImports
-    ScopedTypeVariables
-    TypeApplications
-    TypeFamilies
-    TypeFamilyDependencies
-    TypeOperators
+  default-extensions: DataKinds, LambdaCase, OverloadedStrings,
+    MultiParamTypeClasses, PackageImports, ScopedTypeVariables,
+    TypeApplications, TypeFamilies, TypeFamilyDependencies, TypeOperators
   default-language: Haskell2010
   ghc-options: -Wall -fno-warn-tabs
