def handle028a(tokens):
    """
    Processes the 028A (1. Verfasser) field. Currently, only subfield a and d are supported.
    For details (in German), see: https://www.gbv.de/bibliotheken/verbundbibliotheken/02Verbund/01Erschliessung/02Richtlinien/01KatRicht/3000.pdf
    :param tokens: a list of tokens of the field 028A
    :return: a tuple in form of (<family name, first name>,<gnd id, if available>)
    """
    familyName=""
    firstName=""
    gnd=""
    for token in tokens:
        if token.startswith("a"):
            familyName=token[1:].strip()+", "
        elif token.startswith("d"):
            firstName=token[1:].strip()
        # GND id
        elif token.startswith("0"):
            gnd=token[1:].strip()

    return((familyName+firstName,gnd))