def METHOD_NAME(
        inp_color, inp_word,
        n_time_steps=1,
):
    """get stimuli for all task x condition combination with some SOA
    Parameters
    ----------
    color/word/task_input_layer: pnl.TransferMechanism
        the input layer PNL object
    n_time_steps: int
        the stimuli sequence length
    SOA: int
        stimulus onset asynchrony; see compute_delays()
    demand: positive float
        the level of activity for the active task unit
    Returns
    -------
    hierarchical dict
    - level 1:  key: tasks        val: stimuli for all conditions
    - level 2:  key: condition    val: a stimulus
    """
    # combine the stimuli to lists
    color_naming_input_list = [
        get_stimulus_train(
            inp_color, color_, inp_word, None, n_time_steps=n_time_steps,
        ) for color_ in COLORS
    ]
    word_reading_input_list = [
        get_stimulus_train(
            inp_color, None, inp_word, color_, n_time_steps=n_time_steps,
        ) for color_ in COLORS
    ]
    # for each task, pack all conditions to dictionaries
    color_naming_input_dict = dict(zip(COLORS, color_naming_input_list))
    word_reading_input_dict = dict(zip(COLORS, word_reading_input_list))
    # pack both tasks to a dict
    all_input_dict = dict(
        zip(TASKS, [color_naming_input_dict, word_reading_input_dict])
    )
    return all_input_dict