diff --git a/src/containers/base_sequences.jl b/src/containers/base_sequences.jl
index b0a1c6d3f249269298cca496795b9d46aecebe16..cb98596364af6b435bc5be3c503fd204dbcfc418 100644
--- a/src/containers/base_sequences.jl
+++ b/src/containers/base_sequences.jl
@@ -160,7 +160,7 @@ Converst object into something that can be included in the sequence:
 to_block(cb::ContainerBlock) = cb
 to_block(s::Symbol) = to_block(Val(s))
 to_block(s::Union{VariableType, Nothing, Val{:min}, Val{:max}}) = Wait(s)
-to_block(ec::EventComponent) = BuildingBlock([(0., 0.), (duration(ec), 0.)], [(1, ec)])
+to_block(ec::EventComponent) = BuildingBlock([(0., 0.), (duration(ec), 0.)], [(1, (0., ec))])
 
 
 function make_generic(seq::BaseSequence)
diff --git a/src/containers/building_blocks.jl b/src/containers/building_blocks.jl
index 2293399c41c6cf37c6b79b02fd4bf0d0772d0575..4b59f4ba210678174b60e8ae0deb693e19e20472 100644
--- a/src/containers/building_blocks.jl
+++ b/src/containers/building_blocks.jl
@@ -265,7 +265,7 @@ Scanner constraints are automatically applied.
 - `group`: group of the gradient waveform
 """
 struct BuildingBlock <: BaseBuildingBlock
-    parts :: Vector{<:BaseComponent}
+    parts :: Vector{Union{GradientWaveform, Tuple{Number, EventComponent}}}
 end
 
 function BuildingBlock(waveform::AbstractVector, events::AbstractVector; orientation=nothing, group=nothing)
@@ -278,7 +278,7 @@ function BuildingBlock(waveform::AbstractVector, events::AbstractVector; orienta
         events = [(i+1, e) for (i, e) in events]
     end
 
-    components = BaseComponent[]
+    components = Union{GradientWaveform, Tuple{Number, EventComponent}}[]
     for (index_grad, ((prev_time, prev_grad), (time, grad))) in enumerate(zip(waveform[1:end-1], waveform[2:end]))
         duration = time - prev_time
         if norm(prev_grad) <= 1e-12 && norm(grad) <= 1e-12