if 'verb' not in ret:
             self._log(f'PLEASE IMPLEMENT HANDLER FOR: {msg.raw}')
             return
-        for task, args in ret['_tasks'].items():
-            for arg in args:
+        for task, tok_names in ret['_tasks'].items():
+            for tok_name in tok_names:
                 if task == 'set_db_attr':
-                    setattr(self._db, arg, ret[arg])
-                if task == 'set_me_attr':
-                    setattr(self._db.users['me'], arg, ret[arg])
-                if task == 'set_user':
-                    self._db.user_id(ret[arg])
+                    setattr(self._db, tok_name, ret[tok_name])
+                elif task == 'set_me_attr':
+                    setattr(self._db.users['me'], tok_name, ret[tok_name])
+                elif task == 'set_topic_attr':
+                    setattr(self._db.channels[ret['CHAN']].topic,
+                            tok_name, ret[tok_name])
+                elif task == 'set_user':
+                    self._db.user_id(ret[tok_name])
         if ret['verb'] == '005':   # RPL_ISUPPORT
             for item in ret['isupport']:
                 if item[0] == '-':
                 else:
                     key, data = _Dict.key_val_from_eq_str(item)
                     self._db.isupport[key] = data
-        elif ret['verb'] == '332':  # RPL_TOPIC
-            self._db.channels[ret['channel']].topic.what = ret['topic']
-        elif ret['verb'] == '333':  # RPL_TOPICWHOTIME
-            self._db.channels[ret['channel']].topic.who = ret['author']
         elif ret['verb'] == '353':  # RPL_NAMREPLY
             self._db.channels[ret['channel']].add_from_namreply(ret['names'])
         elif ret['verb'] == '366':  # RPL_ENDOFNAMES
 
     _MsgParseExpectation(MsgTok.SERVER,
                          '332',  # RPL_TOPIC
                          ((MsgTok.NICKNAME, 'set_me_attr:nick'),
-                          (MsgTok.CHANNEL, ':channel'),
-                          (MsgTok.ANY, ':topic'))),
+                          (MsgTok.CHANNEL, ':CHAN'),
+                          (MsgTok.ANY, 'set_topic_attr:what'))),
     _MsgParseExpectation(MsgTok.SERVER,
                          '333',  # RPL_TOPICWHOTIME
                          ((MsgTok.NICKNAME, 'set_me_attr:nick'),
-                          (MsgTok.CHANNEL, ':channel'),
-                          (MsgTok.NICK_USER_HOST, ':author'),
+                          (MsgTok.CHANNEL, ':CHAN'),
+                          (MsgTok.NICK_USER_HOST, 'set_topic_attr:who'),
                           (MsgTok.ANY, ':timestamp'))),
     _MsgParseExpectation(MsgTok.SERVER,
                          '353',  # RPL_NAMREPLY