#spm.Normalize12().input_spec.gm_output_type = [True, False, False] # Should be modulated normalised

    # Smooth
    smooth = Node(interface=spm.Smooth(), name="smooth")
    fwhmlist = [8]
    smooth.iterables = (
        'fwhm', fwhmlist
    )  # Iterables seem to follow the convention of variable.input[key] = value of the iterable.

    # ## Set up the file management through ds to be able to wipe out unnecessary files?
    #  - There are all sorts of files labelled under the type of processing that produced them in each subject's folder, so I am unclear why this is a useful management step. It simply adds a "ds" folder next to the processing folders.

    # Collect key output files in a useful place
    ds = Node(interface=DataSink(), name="ds")
    ds.inputs.base_directory = op.abspath(output_dir)
    ds.substitutions = [('_subj_id', ''), ('_task', ''), ('_t1_', '')]

    # ## Connect the nodes.
    # #### Tip 4: Think of the connections like the "dependency" fields in SPM's batch editor.

    # TODO Add first-level estimations

    preproc_wf.connect([
        (infosource, sf, [('subj_id', 'subj_id'), ('task', 'task'),
                          ('t1', 't1'), ('timept', 'timept')]),
        (infosource, ds, [('subj_id', 'container')]),
        (sf, realign, [('func', 'in_files')]),
        (realign, ds, [('realignment_parameters', 'motion.@param')]),
        (sf, coreg, [('struct', 'target')]),
        (
            realign, coreg, [('mean_image', 'source'),