docs: def run(self, once=True):
          """
          Run the system
          :param once
          :return:
          """
          print(Color("{autored}\n====== System round %s ======{/red}" % self.turn))
          print(Color("{autoblue}== Updating actors events...{/blue}"))
          # Handling OUT messages
          for a in self.actors:
              if self.turn < len(a.events):
                  es = a.events[self.turn]
                  for e in es:
                      if e.e_type == Actor.Event.EventType.OUT:
                          # register
                          # print("Sending from %s to %s %s" % (a.name, e.target, a.get_kv()))
                          if e.target is "*":
                              print("Broadcasting")
                              for ac in self.actors:
                                  self.coms["%s->%s" % (a.name, ac.name)].append(copy.deepcopy(a.get_kv()))
                          else:
                              self.coms["%s->%s" % (a.name, e.target)].append(copy.deepcopy(a.get_kv()))
  
          # Handling IN messages
          for a in self.actors:
              if self.turn < len(a.events):
                  es = a.events[self.turn]
                  for e in es:
                      if e.e_type == Actor.Event.EventType.IN:
                          # Update KV and check pop the send
                          print("%s received a message from %s ..." % (a.name, e.target))
                          if len(self.coms["%s->%s" % (e.target, a.name)]) > 0:
                              a.update_kv(self.coms["%s->%s" % (e.target, a.name)].pop(0))
                              print(" - IN %s %s" % (a.name, a.get_kv()))
                          else:
                              print(" - Error %s trying to receive a message from %s that was not sent by %s" % (a.name, e.target, e.target))
  
          print(Color("{autoblue}\n== Running monitors on each actor...{/blue}"))
          for a in self.actors:
              for i in range(a.speed):
                  a.run(once=once)
          self.turn += 1