diff --git a/src/calng/LpdCorrection.py b/src/calng/LpdCorrection.py
index 6d2505d8adf6a58f1ee5cb4ad1946276eb1dba77..665d6b80f035dcf7441d32c99d2c7ec0d00d6cd9 100644
--- a/src/calng/LpdCorrection.py
+++ b/src/calng/LpdCorrection.py
@@ -34,7 +34,7 @@ class LpdConstants(enum.Enum):
 
 class LpdGpuRunner(base_gpu.BaseGpuRunner):
     _kernel_source_filename = "lpd_gpu.cu"
-    _corrected_axis_order = "cxy"  # TODO: get specs for LPD data
+    _corrected_axis_order = "cxy"
 
     def __init__(
         self,
@@ -97,28 +97,28 @@ class LpdGpuRunner(base_gpu.BaseGpuRunner):
             self.offset_map_gpu.set(
                 np.transpose(
                     constant_data.astype(np.float32),
-                    (2, 0, 1, 3),
+                    (2, 1, 0, 3),
                 )
             )
         elif constant_type in (LpdConstants.BadPixelsDark, LpdConstants.BadPixelsFF):
             self.bad_pixel_map_gpu |= cupy.asarray(
                 np.transpose(
                     constant_data.astype(np.uint32),
-                    (2, 0, 1, 3),
+                    (2, 1, 0, 3),
                 )
             )
         elif constant_type is LpdConstants.GainAmpMap:
             self.gain_amp_map_gpu.set(
                 np.transpose(
                     constant_data.astype(np.float32),
-                    (2, 0, 1, 3),
+                    (2, 1, 0, 3),
                 )
             )
         elif constant_type is LpdConstants.FFMap:
             self.gain_amp_map_gpu.set(
                 np.transpose(
                     constant_data.astype(np.float32),
-                    (2, 0, 1, 3),
+                    (2, 1, 0, 3),
                 )
             )
         elif constant_type is LpdConstants.RelativeGain:
@@ -126,17 +126,9 @@ class LpdGpuRunner(base_gpu.BaseGpuRunner):
             self.rel_gain_slopes_map_gpu.set(
                 np.transpose(
                     constant_data.astype(np.float32),
-                    (2, 0, 1, 3),
+                    (2, 1, 0, 3),
                 )
             )
-            """
-            self.rel_gain_intercept_map_gpu.set(
-                np.transpose(
-                    constant_data.astype(np.float32),
-                    (2, 0, 1, 3),
-                )
-            )
-            """
 
     def _init_kernels(self):
         kernel_source = self._kernel_template.render(
@@ -323,12 +315,25 @@ class LpdCorrection(BaseCorrection):
         return (
             self.unsafe_get("dataFormat.memoryCells"),
             1,
-            self.unsafe_get("dataFormat.pixelsY"),
             self.unsafe_get("dataFormat.pixelsX"),
+            self.unsafe_get("dataFormat.pixelsY"),
         )
 
     def _load_constant_to_runner(self, constant, constant_data):
         self.kernel_runner.load_constant(constant, constant_data)
+        correction_step = {
+            LpdConstants.Offset: "offset",
+            LpdConstants.GainAmpMap: "gainAmp",
+            LpdConstants.RelativeGain: "relGain",
+            LpdConstants.FFMap: "flatfield",
+            LpdConstants.BadPixelsDark: "badPixels",
+            LpdConstants.BadPixelsFF: "badPixels",
+        }[constant]
+        correction_node = f"corrections.{correction_step}"
+        if not self.get(f"{correction_node}.available"):
+            self.set(f"{correction_node}.available", True)
+        self._update_correction_flags()
+        self.log_status_info(f"Done loading {constant.name} to GPU")
 
     def process_data(
         self,