diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -8,6 +8,9 @@
 
 ## Unreleased
 
+## 0.3.1.1 - 2024-05-10
+ - Simplified update procedure
+
 ## 0.3.1 - 2024-02-16
  - Added `Reactor` type and `Reaction` typeclass for heterogeneous components
  - Updated Usage documentation
diff --git a/FULE.cabal b/FULE.cabal
--- a/FULE.cabal
+++ b/FULE.cabal
@@ -5,7 +5,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           FULE
-version:        0.3.1
+version:        0.3.1.1
 synopsis:       Functional UI Layout Engine
 description:    Please see the README on GitHub at <https://github.com/pschnapp/FULE#readme>
 category:       GUI
@@ -13,7 +13,7 @@
 bug-reports:    https://github.com/pschnapp/FULE/issues
 author:         Paul Schnapp
 maintainer:     paul.schnapp@gmail.com
-copyright:      2022, 2023 Paul Schnapp
+copyright:      2022-2024 Paul Schnapp
 license:        BSD3
 license-file:   LICENSE
 build-type:     Simple
diff --git a/doc/Theory.md b/doc/Theory.md
--- a/doc/Theory.md
+++ b/doc/Theory.md
@@ -555,15 +555,12 @@
 \begin{align}
 P_{P} & = prop_{P}(P) \\
 P_{E} & = prop_{E}(E) \\
-P_{H} & = P_{P} - I \\
-T & = P_{P} + P_{E} + P_{H}P_{E} + P_{E}P_{H} + P_{H}P_{E}P_{H} \\
+T & = P_{P} (I + P_{E}P_{P}) \\
 L_{n+1} & = T U + L_n
 \end{align}
 $$
 
 where $I$ is the identity matrix.
-
-The $P_{H}$ terms in $T$ serve to mix the propagations of $E$ and $P$ together since we need them to interact in the layout for it to respond properly to changes.
 
 Since $P$ and $E$ don't change each time an update $U$ is applied we can pre-compute the combined transformation matrix $T$ just once for efficiency's sake and use it for every update cycle; any changes to the composition of the layout (and thus to $P$ or $E$) will require rebuilding $T$ though.
 
diff --git a/src/FULE/Layout.hs b/src/FULE/Layout.hs
--- a/src/FULE/Layout.hs
+++ b/src/FULE/Layout.hs
@@ -303,11 +303,7 @@
       } = design
     pp = propPlas plas
     pe = propElas elas
-    ph = pp `sub` (eye . fst . dims $ plas)
-    transform = pp `add` pe
-      `add` (ph `mul` pe)
-      `add` (pe `mul` ph)
-      `add` (ph `mul` pe `mul` ph)
+    transform = pp `mul` ((eye . fst . dims $ plas) `add` (pe `mul` pp))
 
 -- | Transform a 'Layout' back into a 'LayoutDesign'.
 design :: Layout -> LayoutDesign
