def METHOD_NAME(sp, vrange=None):
    """
    A rather complicated way to make the spdicts above given a spectrum...
    """
    spdict = {}
    for linename,freq in iteritems(spectrum.models.formaldehyde.central_freq_dict):
        if vrange is not None:
            freq_test_low  = freq - freq * vrange[0]/units.speedoflight_kms
            freq_test_high = freq - freq * vrange[1]/units.speedoflight_kms
        else:
            freq_test_low = freq_test_high = freq
        if (sp.xarr.as_unit('Hz').in_range(freq_test_low*u.Hz) or
                sp.xarr.as_unit('Hz').in_range(freq_test_high*u.Hz)):
            spdict[linename] = sp.copy(deep=True)
            spdict[linename].xarr.convert_to_unit('GHz')
            spdict[linename].xarr.refX = freq
            spdict[linename].xarr.refX_unit = 'Hz'
            #spdict[linename].baseline = copy.copy(sp.baseline)
            #spdict[linename].baseline.Spectrum = spdict[linename]
            spdict[linename].specfit = sp.specfit.copy(parent=spdict[linename])
            spdict[linename].xarr.convert_to_unit('km/s')
            if vrange is not None:
                try:
                    spdict[linename].crop(*vrange, unit='km/s')
                except IndexError:
                    # if the freq in range, but there's no data in range, remove
                    spdict.pop(linename)
    return spdict