diff --git a/gext/main.py b/gext/main.py
index 7b4e3e569ab6049c4f03622f8deb3b5ba8e2191c..1c9e692e22035a252444827029898617eb22232f 100644
--- a/gext/main.py
+++ b/gext/main.py
@@ -94,7 +94,12 @@ class Extrapolator:
         self.overlaps.push(overlap)
 
     def guess(self, coords: np.ndarray, overlap = None) -> np.ndarray:
-        """Get a new electronic density to be used as a guess."""
+        """Get a new electronic density matrix to be used as a guess."""
+        c_guess = self.guess_coefficients(coords, overlap)
+        return c_guess @ c_guess.T
+
+    def guess_coefficients(self, coords: np.ndarray, overlap = None) -> np.ndarray:
+        """Get a new coefficient matrix to be used as a guess."""
 
         if self.options["allow_partially_filled"]:
             n = min(self.options["nsteps"], self.descriptors.count)
@@ -125,7 +130,7 @@ class Extrapolator:
         c_guess = self._grassmann_exp(gamma)
         c_guess = inverse_sqrt_overlap @ c_guess
 
-        return c_guess @ c_guess.T
+        return c_guess
 
     def _get_tangent(self) -> np.ndarray:
         """Get the tangent point."""