<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def listen(self):
 """ Listen for messages """

        for message in self.pubsub.listen():
            if message['type'] == 'message':
                message_type, client_id, client_storage, args, kwargs = self.unpack(
                    message['data'])

                self.dispatch_message(
                    message_type, client_id, client_storage, args, kwargs)