diff --git a/src/sequence_io/pulseq.jl b/src/sequence_io/pulseq.jl
index c8d355c24b1f05f4999e4fd9d60c022374ecc0b5..dccb853ae7f58b3ad46f07bd7ea7dd9b79a75dd2 100644
--- a/src/sequence_io/pulseq.jl
+++ b/src/sequence_io/pulseq.jl
@@ -6,7 +6,7 @@ import Interpolations: linear_interpolation
 import ..PulseqIO.Types: PulseqSequence, PulseqBlock, PulseqTrapezoid, PulseqGradient, PulseqRFPulse, PulseqShape, PulseqADC
 import ..PulseqIO.Extensions: parse_extension, get_extension_name, add_extension_definition!, PulseqExtension, PulseqExtensionDefinition
 import ...Containers: Sequence, BuildingBlock, BaseBuildingBlock, events, waveform, iter_blocks, start_time
-import ...Components: GenericPulse, ADC, RFPulseComponent, InstantPulse, InstantGradient
+import ...Components: GenericPulse, ADC, RFPulseComponent, InstantPulse, InstantGradient, InstantGradient3D
 import ...Scanners: Scanner
 import ...Variables: variables, make_generic
 
@@ -187,7 +187,7 @@ end
 
 # I/O of InstantPulse
 function parse_extension(ext::PulseqExtensionDefinition{:InstantPulse})
-    mapping = Dict{Int, InstantPulse}()
+    mapping = Dict{Int, Tuple{Float64, InstantPulse}}()
     for line in ext.content
         (id, delay, flip_angle, phase) = parse.((Int, Float64, Float64, Float64), split(line))
         mapping[id] = (delay, InstantPulse(flip_angle, phase, nothing))
@@ -212,7 +212,7 @@ end
 
 # I/O of InstantGradient
 function parse_extension(ext::PulseqExtensionDefinition{:InstantGradient})
-    mapping = Dict{Int, InstantGradient}()
+    mapping = Dict{Int, Tuple{Float64, InstantGradient3D}}()
     for line in ext.content
         (id, delay, qvec...) = parse.((Int, Float64, Float64, Float64, Float64), split(line))
         mapping[id] = (delay, InstantGradient3D([qvec...], nothing))
diff --git a/src/sequence_io/pulseq_io/parsers/blocks.jl b/src/sequence_io/pulseq_io/parsers/blocks.jl
index 172847ba0aa06f591d997070cd5d729f2e7d07c4..db6ef52b2dcf1e2b7366071462f62049cb755e3f 100644
--- a/src/sequence_io/pulseq_io/parsers/blocks.jl
+++ b/src/sequence_io/pulseq_io/parsers/blocks.jl
@@ -19,7 +19,7 @@ function parse_section(section::PulseqSection{:blocks}; version, rf=Dict(), grad
             _get_component(props[:gy], all_grad),
             _get_component(props[:gz], all_grad),
             _get_component(props[:adc], adc),
-            iszero(props[:ext]) ? Tuple{PulseqExtension, Int}[] : _get_component(props[:ext], extensions),
+            iszero(props[:ext]) ? [] : _get_component(props[:ext], extensions),
         ))
     end
     return res
diff --git a/src/sequence_io/pulseq_io/parsers/extensions.jl b/src/sequence_io/pulseq_io/parsers/extensions.jl
index 9d39c8ce142a9bcd668f7fa6c8a0edf82d3593fa..0b35bb5fb17f49716bfda29bfbcc1f01041679c3 100644
--- a/src/sequence_io/pulseq_io/parsers/extensions.jl
+++ b/src/sequence_io/pulseq_io/parsers/extensions.jl
@@ -3,19 +3,19 @@ import ..Extensions: parse_extension, get_extension_name, add_extension_definiti
 function parse_section(section::PulseqSection{:extensions}; kwargs...)
     current_extension = -1
     pre_amble = true
-    linked_list = Dict{Int, NTuple{3, Int}}()
+    linked_list = Dict{Int, NamedTuple}()
     extensions = Dict{Int, PulseqExtensionDefinition}()
     for line in section.content
         if startswith(line, "extension ")
             pre_amble = false
             (_, name, str_id) = split(line)
-            current_extension = int(str_id)
-            extensions[current_extension] = PulseqExtensionDefinition{name}(String[])
-        elseif pre_ample
-            (id, type, ref, next) = int.(split(line))
+            current_extension = parse(Int, str_id)
+            extensions[current_extension] = PulseqExtensionDefinition{Symbol(name)}(String[])
+        elseif pre_amble
+            (id, type, ref, next) = parse.(Int, split(line))
             linked_list[id] = (type=type, ref=ref, next=next)
         else
-            push!(extensions[current_extension], line)
+            push!(extensions[current_extension].content, line)
         end
     end
 
@@ -23,7 +23,7 @@ function parse_section(section::PulseqSection{:extensions}; kwargs...)
 
     function get_extension_list(key::Int)
         if iszero(key)
-            return Tuple{PulseqExtension, Int}[]
+            return []
         else
             base = get_extension_list(linked_list[key].next)
             pushfirst!(base, extension_mappers[linked_list[key].type][linked_list[key].ref])