def design(family, param):
    result = []
    for seq in family:
        remain = set(family)
        remain.remove(seq)
        #build GST s1|s2...|sm
        tree = SuffixTree(concat(list(remain)))
        
        n = len(seq)
        l_min = param[0]
        l_max = param[1]
        l_t = param[10] 
        
        begin = 0 
        end = n - (l_t + l_min)
        forward = find(l_min, l_max, begin, end, seq, tree)
        
        begin = (l_t + l_min) 
        end = n
        reverse = find(l_min, l_max, begin, end, seq, tree)
              
        result.append(bio.design_primer(seq, param, forward, reverse))
                
    return result