Give suggestions how to refactor the following Robot Framework keywords. List and explain the suggestions:
"""
Find AUQA/AIQA Record
    [Documentation]    Captures AUQA/AIQA (depending on ${transid}) log record that matches transaction &{txn}
    [Arguments]    ${transid}    ${txn}    ${direction}=BACKWARD
    Start CICS Transaction    ${transid}
    Wait Until String    CARD AUTHORIZATIONS ACTIVITY

    ${card_number}    Set Variable    ${txn.card_number}

    IF    "${direction}" == "BACKWARD"
        ${card_number}    Remove Leading Zeroes    ${card_number}
        ${card_number}    Evaluate    ${card_number} + 1
        ${card_number}    Insert Leading Zeroes    ${card_number}    19
    END

    Write Bare    ${card_number}
    Send Enter And Wait
    Wait Field Detected

    ${flag}    Does Page Contain String    NO RECORDS

    IF    ${flag}
        Execute Command    Home()
        Find AUQA/AIQA Record    ${transid}    ${txn}    ${direction}=FORWARD
        RETURN
    END

    IF    "${direction}" == "BACKWARD"    Send PF    4

    Wait Field Detected
    ${card_number}    Read    4    16    19

    WHILE    "${card_number}" == "${txn.card_number}"
        ${found}    Search Transaction In AUQA/AIQA List Page    ${transid}    ${txn}
        IF    ${found}            BREAK
        IF    "${direction}" == "BACKWARD"
            Send PF    4
        ELSE
            Send Enter And Wait
        END
        Wait Field Detected
        ${terminal_id}    Read    4    16    19
    END

    Should Be True    ${