def METHOD_NAME(self):
    self.targets = Table()
    # This is a dual identity case. In all cases the target is both QSO and ELG.
    # ADM The first case is a true QSO with low z.
    # ADM The second case is a true QSO with mid z.
    # ADM The third case is a QSO with a z warning.
    # ADM The fourth case is a true QSO with high z.
    # ADM The fifth case is a z=1.5 ELG but that was a QSO target.
    self.type_A = np.array(['QSO', 'QSO', 'QSO', 'QSO', 'ELG'])
    self.type_B = np.array(['ELG', 'ELG', 'ELG', 'ELG', 'QSO'])
    self.priorities_A = np.array([Mx[t].priorities['UNOBS'] for t in self.type_A])
    self.priorities_B = np.array([Mx[t].priorities['UNOBS'] for t in self.type_B])
    self.priorities = np.maximum(self.priorities_A, self.priorities_B)  # get the maximum between the two.
    nt = len(self.type_A)
    # ADM add some "extra" columns that are needed for observations.
    for col in ["RA", "DEC", "PARALLAX", "PMRA", "PMDEC", "REF_EPOCH"]:
        self.targets[col] = np.zeros(nt, dtype=mtldatamodel[col].dtype)
    Amx = np.array([Mx[t].mask for t in self.type_A])
    Bmx = np.array([Mx[t].mask for t in self.type_B])
    self.targets['DESI_TARGET'] = Amx | Bmx
    for col in ['BGS_TARGET', 'MWS_TARGET', 'SCND_TARGET',
                'SUBPRIORITY', 'PRIORITY']:
        self.targets[col] = np.zeros(nt, dtype=mtldatamodel[col].dtype)
    n = len(self.targets)
    self.targets['ZFLUX'] = 10**((22.5-np.linspace(20, 22, n))/2.5)
    self.targets['TARGETID'] = list(range(n))
    pinit, ninit = initial_priority_numobs(self.targets)
    self.targets["PRIORITY_INIT"] = pinit
    self.targets["NUMOBS_INIT"] = ninit
    # - reverse the order for zcat to make sure joins work.
    self.zcat = Table()
    self.zcat['TARGETID'] = self.targets['TARGETID'][::-1]
    self.zcat['Z'] = [1.61, 2.5, 1.2, 1.7, 0.5]
    self.zcat['Z_QN'] = [1.61, 2.5, 1.2, 1.7, 0.5]
    self.zcat['IS_QSO_QN'] = [0, 1, 1, 1, 1]
    self.zcat['ZWARN'] = [0, 0, 1, 0, 0]
    self.zcat['NUMOBS'] = [1, 1, 1, 1, 1]
    self.zcat['SPECTYPE'] = ['GALAXY', 'QSO', 'QSO', 'QSO', 'QSO']
    self.zcat['ZTILEID'] = [-1, -1, -1, -1, -1]
    for col in msaddcols.dtype.names:
        if "QN" not in col:
            self.zcat[col] = [-1, -1, -1, -1, -1]
    # priorities and numobs more after measuring redshifts.
    self.post_prio = [0 for t in self.type_A]
    self.post_numobs_more = [0 for t in self.type_A]
    self.post_prio[0] = Mx['QSO'].priorities['MORE_MIDZQSO']  # low-z QSO, reobserve once at low priority.
    self.post_prio[1] = Mx['QSO'].priorities['MORE_MIDZQSO']  # mid-z QSO, reobserve thrice at low priority.
    self.post_prio[2] = Mx['QSO'].priorities['MORE_MIDZQSO']  # low-z QSO, reobserve once at low priority.
    self.post_prio[3] = Mx['QSO'].priorities['MORE_ZGOOD']    # high-z QSO, reobserve thrice at high priority.
    self.post_prio[4] = Mx['QSO'].priorities['MORE_MIDZQSO']  # uncertain mid-z QSO or galaxy, reobserve once at low priority.
    self.post_numobs_more[0] = 1  # lowz/tracer QSO.
    self.post_numobs_more[1] = 3  # mid-z QSO confirmed by both redrock and QN.
    self.post_numobs_more[2] = 1  # lowz/tracer QSO.
    self.post_numobs_more[3] = 3  # LyA QSO confirmed by both redrock and QN.
    self.post_numobs_more[4] = 1  # mid-z QSO confirmed by redrock but not QN (based on IS_QSO_QN=0).