def event(self, cuuid, host, euuid, event_data, timestamp, priority):
        response = None
        if host in self.encrypted_hosts:
            logger.debug("Encrypted!")
            client_key = self.registry[cuuid]["encryption"]
        else:
            logger.debug("Not encrypted :<")
            client_key = None
        port = host[1]
        host = host[0]
        if not self.is_registered(cuuid, host):
            logger.warning("<%s> Sending BYE EVENT: Client not registered." % cuuid)
            response = serialize_data({"method": "BYE EVENT",
                                       "data": "Not registered"},
                                      self.compression,
                                      self.encryption, client_key)
            return response
        if euuid in self.event_uuids:
            logger.warning("<%s> Event ID is already being processed: %s" % (cuuid,
                                                                             euuid))
            return response
        self.event_uuids[euuid] = 0
        logger.debug("<%s> <euuid:%s> Currently processing events: "
                     "%s" % (cuuid, euuid, str(self.event_uuids)))
        logger.debug("<%s> <euuid:%s> New event being processed" % (cuuid, euuid))
        logger.debug("<%s> <euuid:%s> Event Data: %s" % (cuuid,
                                                         euuid,
                                                         pformat(event_data)))
        if self.middleware.event_legal(cuuid, euuid, event_data):
            logger.debug("<%s> <euuid:%s> Event LEGAL. Sending judgement "
                         "to client." % (cuuid, euuid))
            response = serialize_data({"method": "LEGAL",
                                       "euuid": euuid,
                                       "priority": priority},
                                      self.compression,
                                      self.encryption, client_key)
            thread = threading.Thread(target=self.middleware.event_execute,
                                      args=(cuuid, euuid, event_data)
                                      )
            thread.start()
        else:
            logger.debug("<%s> <euuid:%s> Event ILLEGAL. Sending judgement "
                         "to client." % (cuuid, euuid))
            response = serialize_data({"method": "ILLEGAL",
                                       "euuid": euuid,
                                       "priority": priority},
                                      self.compression,
                                      self.encryption, client_key)
        self.listener.call_later(self.timeout, self.retransmit,
                                 {"euuid": euuid,
                                  "response": response, "cuuid": cuuid})
        return response