def merger(chat_df, message_df, handle_df, attachment_df, chat_message_join_df, message_attachment_join_df):
    """
    Merges the given dataframes to create a single master dataframe containing all information. Assumes all dataframes
    have had their conflicting columns renamed via conflict_rename
    :param chat_df: the chat dataframe
    :param message_df: the message dataframe
    :param handle_df: the handle dataframe
    :param attachment_df: the attachment dataframe
    :param chat_message_join_df: the chat_message_join dataframe
    :param message_attachment_join_df: the message_attachment_join dataframe
    :return: the combined dataframe
    """
    print('Merging tables')
    print('Merging chats and messages')
    merged_df = chat_message_join_df.join(chat_df.set_index('chat_id'), on='chat_id')
    merged_df = merged_df.join(message_df.set_index('message_id'), on='message_id')
    print("Merge complete")
    print("Merging handles")
    merged_df = merged_df.join(handle_df.set_index('handle_id'), on='handle_id')
    print('Merge complete')
    print('Merging attachments')
    merged_df = merged_df.join(message_attachment_join_df.set_index('message_id'), on='message_id')
    merged_df = merged_df.join(attachment_df.set_index('attachment_id'), on='attachment_id')
    print("Merge complete")
    print("All tables merged")
    return merged_df