def augmentData(data, hosts, labels, target_class, append_states, append_hosts):
    """
    Add the Tactic or Technique to the data. Add host type to the data.
    
    GIVEN:
      data (list)           list of events
      hosts (list)          one of ["Attacker", "Victim"]
      labels (dict)         human-annotated labels for data
      target_class (str)    one of ["tactics", "techniques"]
      append_states (bool)  whether or not to append tactics/techniques to the data
      append_hosts (bool)   whether or not to append hosts types to the data

    RETURN:
      new_data (list)       copy of `data` with tactics/techniques and/or host types appended
    """
    new_data = data
    target_swap = {"tactics": "techniques", "techniques": "tactics"}

    if append_hosts:
        for i in range(0, len(data)):
            new_data[i] = new_data[i] + " " + hosts[i]

    if append_states:
        for i in range(0, len(data)):
            new_data[i] = new_data[i] + " " + labels[target_swap[target_class]][i]

    return new_data