diff --git a/src/problem/problem.cpp b/src/problem/problem.cpp
index 973221d7f58981651b069d6fba8745a1a1f98cd7..53b222ba14dd70037de60cf3c07559685b3504f1 100644
--- a/src/problem/problem.cpp
+++ b/src/problem/problem.cpp
@@ -960,18 +960,28 @@ void Problem::print(int depth, bool constr_by, bool metric, bool state_blocks) c
             {
                 cout << (F->isFixed() ? "    Fix" : "    Est") << ", ts=" << std::setprecision(5)
                         << F->getTimeStamp().get();
-                cout << ",\t x = ( " << std::setprecision(2) << F->getState().transpose() << " )";
-                cout << endl;
-            }
-            if (state_blocks)
-            {
-                cout << "    sb:";
-                for (const auto& sb : F->getStateBlockVec())
-                {
-                    cout << " " << (sb->isFixed() ? "Fix" : "Est");
+                cout << ",\t x = ( " << std::setprecision(2) << endl;
+                for (auto sb_name: F->getStructure()){
+                    auto sb = F->getStateBlock(sb_name);
+                    cout << "      " << sb_name;
+                    if (state_blocks){
+                        cout << "," << (sb->isFixed() ? "Fix" : "Est");
+                    }
+                    cout << ": " << sb->getState().transpose() << "\n";
                 }
-                cout << endl;
+                cout << " )" << endl;
+                // cout << ",\t x = ( " << std::setprecision(2) << F->getState().transpose() << " )";
+                // cout << endl;
             }
+            // if (state_blocks)
+            // {
+            //     cout << "    sb:";
+            //     for (const auto& sb : F->getStateBlockVec())
+            //     {
+            //         cout << " " << (sb->isFixed() ? "Fix" : "Est");
+            //     }
+            //     cout << endl;
+            // }
             if (depth >= 2)
             {
                 // Captures =======================================================================================