diff --git a/src/pathways.jl b/src/pathways.jl
index cc46223637f558f89c7c365337052f3e982dd469..13003883dba9f1520b60e467cc49af774ab84f17 100644
--- a/src/pathways.jl
+++ b/src/pathways.jl
@@ -28,7 +28,7 @@ The RF pulses cause mappings between these different states as described below.
     - `:excite`/90: Takes spin state one step along the following sequence +longitudinal -> +transverse -> -longitudinal -> -transverse -> +longitudinal
     - `:neg_excite`/270/-90: Inverse step compared with `:excite`.
 - `readout_index`: After encountering the number of pulses as defined in `pulse_effects`, continue the `PathWay` until the readout given by `index` is reached. If set to 0 the `PathWay` is terminated immediately after the last RF pulse.
-- `group`: which gradient grouping to consider for the `qvec` and `bmat`.
+- `group`: which gradient grouping to consider for the `qvec` and `bmat`. If not set, all gradients will be considered (using their current alignment).
 
 ## Attributes
 Over the pathway the following values are computed. Each can be accessed by calling the appropriate function:
@@ -257,7 +257,7 @@ end
 PathwayWalker() = PathwayWalker(
     0., false, true,
     zeros(4),
-    Dict{Any, GradientTracker}()
+    Dict{Any, GradientTracker}(nothing => GradientTracker())
 )
 
 """
@@ -475,14 +475,15 @@ function update_walker_gradient!(gradient::GradientWaveform, walker::PathwayWalk
     end
 
     # update gradient tracker till start of gradient
-    key = gradient.group
-    update_gradient_tracker_till_time!(walker, key, gradient_start_time)
-
-    # update qvec/bmat during gradient
-    tracker = walker.gradient_trackers[key]
-    tracker.bmat = tracker.bmat .+ bmat_gradient(gradient, tracker.qvec)
-    tracker.qvec = tracker.qvec .+ qval3(gradient)
-    tracker.last_gradient_time = gradient_start_time + duration(gradient)
+    for key in (isnothing(gradient.group) ? [nothing] : [nothing, gradient.group])
+        update_gradient_tracker_till_time!(walker, key, gradient_start_time)
+
+        # update qvec/bmat during gradient
+        tracker = walker.gradient_trackers[key]
+        tracker.bmat = tracker.bmat .+ bmat_gradient(gradient, tracker.qvec)
+        tracker.qvec = tracker.qvec .+ qval3(gradient)
+        tracker.last_gradient_time = gradient_start_time + duration(gradient)
+    end
 end
 
 """