@staticmethod
def create(class_name, from_event=None):
    """
        Creates a new event of the specified class, while preserving the values
        of the origin event (as much as possible).
        :param class_name: The name of the type of event to create
        :param from_event: The event from wich the common values will be copied
        """
    new_event = eval(class_name)()
    if from_event is not None:
        for key in new_event.__dict__.keys():
            if key in from_event.__dict__ and key != 'type':
                new_event.__dict__[key] = from_event.__dict__[key]
    return new_event
