diff --git a/src/topupopt/problems/esipp/model.py b/src/topupopt/problems/esipp/model.py
index 89899041596f5cf46d07f45fe6f74285d347d113..e686001a0a68374f52726398e2ef5d87ec7bd023 100644
--- a/src/topupopt/problems/esipp/model.py
+++ b/src/topupopt/problems/esipp/model.py
@@ -2827,123 +2827,123 @@ def create_model(name: str,
                     for l_circ in m.set_L[g]
                     if l_circ not in m.set_L_exp[g]
                     if l_circ != l
-                    ) <= 1 + 
-                M_gl*sum(
-                    #**********************************************************
-                    # outgoing arcs in interfaced groups, nominal direction
-                    sum(sum(1
-                            for j in m.set_J_col[(g,l,l_diamond)]
-                            #if j in m.set_J_int[(g,l,l_diamond)]
-                            if (g,l,l_diamond,j) in m.set_GLLJ_col_t[t]
-                            )*m.var_xi_arc_inv_t[t]
-                        for t in m.set_T_int
-                        ) if (g,l,l_diamond) in m.set_J_col else 0
-                    +
-                    # outgoing arcs in interfaced groups, reverse direction
-                    sum(sum(1
-                            for j in m.set_J_col[(g,l_diamond,l)]
-                            #if j in m.set_J_int[(g,l_diamond,l)]
-                            if j in m.set_J_und[(g,l_diamond,l)]
-                            if (g,l_diamond,l,j) in m.set_GLLJ_col_t[t]
-                            )*m.var_xi_arc_inv_t[t]
-                        for t in m.set_T_int
-                        ) if (g,l_diamond,l) in m.set_J_col else 0
-                    +
-                    #**********************************************************
-                    # TODO: outgoing arcs in non-interfaced optional groups, nominal
-                    sum(sum(1
-                            for j in m.set_J_col[(g,l,l_diamond)]
-                            #if j in m.set_J_int[(g,l,l_diamond)]
-                            if (g,l,l_diamond,j) in m.set_GLLJ_col_t[t]
-                            )*sum(
-                                m.var_delta_arc_inv_th[(t,h)] 
-                                for h in m.set_H_t[t]
-                                )
-                        for t in m.set_T
-                        if t not in m.set_T_mdt
-                        if t not in m.set_T_int 
-                        ) if (g,l,l_diamond) in m.set_J_col else 0
-                    +
-                    # TODO: outgoing arcs in non-interfaced optional groups, reverse
-                    sum(sum(1
-                            for j in m.set_J_col[(g,l_diamond,l)]
-                            #if j in m.set_J_int[(g,l_diamond,l)]
-                            if j in m.set_J_und[(g,l_diamond,l)]
-                            if (g,l_diamond,l,j) in m.set_GLLJ_col_t[t]
-                            )*sum(
-                                m.var_delta_arc_inv_th[(t,h)] 
-                                for h in m.set_H_t[t]
-                                )
-                        for t in m.set_T
-                        if t not in m.set_T_mdt
-                        if t not in m.set_T_int 
-                        ) if (g,l_diamond,l) in m.set_J_col else 0
-                    +
-                    #**********************************************************
-                    # interfaced individual outgoing arcs, nominal direction
-                    sum(m.var_xi_arc_inv_gllj[(g,l,l_diamond,j)]
-                        for j in m.set_J_int[(g,l,l_diamond)] # interfaced
-                        if j not in m.set_J_col[(g,l,l_diamond)] # individual
-                        ) if (g,l,l_diamond) in m.set_J_int else 0
-                    +
-                    #**********************************************************
-                    # interfaced individual undirected arcs, reverse direction
-                    sum(m.var_xi_arc_inv_gllj[(g,l,l_diamond,j)]
-                        for j in m.set_J_und[(g,l_diamond,l)] # undirected
-                        if j in m.set_J_int[(g,l_diamond,l)] # interfaced
-                        if j not in m.set_J_col[(g,l_diamond,l)] # individual
-                        ) if (g,l_diamond,l) in m.set_J_und else 0
-                    +
-                    #**********************************************************
-                    # outgoing non-interfaced individual optional arcs 
-                    sum(
-                        sum(m.var_delta_arc_inv_glljh[(g,l,l_diamond,j,h)]
-                            for h in m.set_H_gllj[(g,l,l_diamond,j)])
-                        for j in m.set_J[(g,l,l_diamond)]
-                        if j not in m.set_J_col[(g,l,l_diamond)] # individual
-                        if j not in m.set_J_mdt[(g,l,l_diamond)] # optional
-                        if j not in m.set_J_int[(g,l,l_diamond)] # interfaced
-                        ) if (g,l,l_diamond) in m.set_J else 0
-                    +
-                    #**********************************************************
-                    # individual non-interfaced undirected arcs, reverse dir.
-                    sum(
-                        sum(m.var_delta_arc_inv_glljh[(g,l_diamond,l,j,h)]
-                            for h in m.set_H_gllj[(g,l_diamond,l,j)])
-                        for j in m.set_J_und[(g,l_diamond,l)] # undirected
-                        if j not in m.set_J_col[(g,l_diamond,l)] # individual
-                        if j not in m.set_J_mdt[(g,l_diamond,l)] # optional
-                        if j not in m.set_J_int[(g,l_diamond,l)] # interfaced
-                        ) if (g,l_diamond,l) in m.set_J_und else 0
-                    +
-                    #**********************************************************
-                    # preselected outgonig arcs, nominal direction
-                    len(m.set_J_pre[(g,l,l_diamond)]
-                        ) if (g,l,l_diamond) in m.set_J_pre else 0
-                    +
-                    #**********************************************************
-                    # mandatory outgoing arcs, nominal direction
-                    len(m.set_J_mdt[(g,l,l_diamond)]
-                        ) if (g,l,l_diamond) in m.set_J_mdt else 0
-                    +
-                    #**********************************************************
-                    # undirected preselected arcs, reverse direction
-                    sum(1
-                        for j in m.set_J_pre[(g,l_diamond,l)]
-                        if j in m.set_J_und[(g,l_diamond,l)]
-                        ) if (g,l_diamond,l) in m.set_J_pre else 0
-                    +
-                    #**********************************************************
-                    # undirected mandatory arcs, reverse direction
-                    sum(1
-                        for j in m.set_J_mdt[(g,l_diamond,l)]
-                        if j in m.set_J_und[(g,l_diamond,l)]
-                        ) if (g,l_diamond,l) in m.set_J_mdt else 0
-                    #**********************************************************
-                    for l_diamond in m.set_L[g]
-                    if l_diamond not in m.set_L_imp[g]
-                    if l_diamond != l
-                    )
+                    ) <= 1 #+ 
+                # M_gl*sum(
+                #     #**********************************************************
+                #     # outgoing arcs in interfaced groups, nominal direction
+                #     sum(sum(1
+                #             for j in m.set_J_col[(g,l,l_diamond)]
+                #             #if j in m.set_J_int[(g,l,l_diamond)]
+                #             if (g,l,l_diamond,j) in m.set_GLLJ_col_t[t]
+                #             )*m.var_xi_arc_inv_t[t]
+                #         for t in m.set_T_int
+                #         ) if (g,l,l_diamond) in m.set_J_col else 0
+                #     +
+                #     # outgoing arcs in interfaced groups, reverse direction
+                #     sum(sum(1
+                #             for j in m.set_J_col[(g,l_diamond,l)]
+                #             #if j in m.set_J_int[(g,l_diamond,l)]
+                #             if j in m.set_J_und[(g,l_diamond,l)]
+                #             if (g,l_diamond,l,j) in m.set_GLLJ_col_t[t]
+                #             )*m.var_xi_arc_inv_t[t]
+                #         for t in m.set_T_int
+                #         ) if (g,l_diamond,l) in m.set_J_col else 0
+                #     +
+                #     #**********************************************************
+                #     # TODO: outgoing arcs in non-interfaced optional groups, nominal
+                #     sum(sum(1
+                #             for j in m.set_J_col[(g,l,l_diamond)]
+                #             #if j in m.set_J_int[(g,l,l_diamond)]
+                #             if (g,l,l_diamond,j) in m.set_GLLJ_col_t[t]
+                #             )*sum(
+                #                 m.var_delta_arc_inv_th[(t,h)] 
+                #                 for h in m.set_H_t[t]
+                #                 )
+                #         for t in m.set_T
+                #         if t not in m.set_T_mdt
+                #         if t not in m.set_T_int 
+                #         ) if (g,l,l_diamond) in m.set_J_col else 0
+                #     +
+                #     # TODO: outgoing arcs in non-interfaced optional groups, reverse
+                #     sum(sum(1
+                #             for j in m.set_J_col[(g,l_diamond,l)]
+                #             #if j in m.set_J_int[(g,l_diamond,l)]
+                #             if j in m.set_J_und[(g,l_diamond,l)]
+                #             if (g,l_diamond,l,j) in m.set_GLLJ_col_t[t]
+                #             )*sum(
+                #                 m.var_delta_arc_inv_th[(t,h)] 
+                #                 for h in m.set_H_t[t]
+                #                 )
+                #         for t in m.set_T
+                #         if t not in m.set_T_mdt
+                #         if t not in m.set_T_int 
+                #         ) if (g,l_diamond,l) in m.set_J_col else 0
+                #     +
+                #     #**********************************************************
+                #     # interfaced individual outgoing arcs, nominal direction
+                #     sum(m.var_xi_arc_inv_gllj[(g,l,l_diamond,j)]
+                #         for j in m.set_J_int[(g,l,l_diamond)] # interfaced
+                #         if j not in m.set_J_col[(g,l,l_diamond)] # individual
+                #         ) if (g,l,l_diamond) in m.set_J_int else 0
+                #     +
+                #     #**********************************************************
+                #     # interfaced individual undirected arcs, reverse direction
+                #     sum(m.var_xi_arc_inv_gllj[(g,l,l_diamond,j)]
+                #         for j in m.set_J_und[(g,l_diamond,l)] # undirected
+                #         if j in m.set_J_int[(g,l_diamond,l)] # interfaced
+                #         if j not in m.set_J_col[(g,l_diamond,l)] # individual
+                #         ) if (g,l_diamond,l) in m.set_J_und else 0
+                #     +
+                #     #**********************************************************
+                #     # outgoing non-interfaced individual optional arcs 
+                #     sum(
+                #         sum(m.var_delta_arc_inv_glljh[(g,l,l_diamond,j,h)]
+                #             for h in m.set_H_gllj[(g,l,l_diamond,j)])
+                #         for j in m.set_J[(g,l,l_diamond)]
+                #         if j not in m.set_J_col[(g,l,l_diamond)] # individual
+                #         if j not in m.set_J_mdt[(g,l,l_diamond)] # optional
+                #         if j not in m.set_J_int[(g,l,l_diamond)] # interfaced
+                #         ) if (g,l,l_diamond) in m.set_J else 0
+                #     +
+                #     #**********************************************************
+                #     # individual non-interfaced undirected arcs, reverse dir.
+                #     sum(
+                #         sum(m.var_delta_arc_inv_glljh[(g,l_diamond,l,j,h)]
+                #             for h in m.set_H_gllj[(g,l_diamond,l,j)])
+                #         for j in m.set_J_und[(g,l_diamond,l)] # undirected
+                #         if j not in m.set_J_col[(g,l_diamond,l)] # individual
+                #         if j not in m.set_J_mdt[(g,l_diamond,l)] # optional
+                #         if j not in m.set_J_int[(g,l_diamond,l)] # interfaced
+                #         ) if (g,l_diamond,l) in m.set_J_und else 0
+                #     +
+                #     #**********************************************************
+                #     # preselected outgonig arcs, nominal direction
+                #     len(m.set_J_pre[(g,l,l_diamond)]
+                #         ) if (g,l,l_diamond) in m.set_J_pre else 0
+                #     +
+                #     #**********************************************************
+                #     # mandatory outgoing arcs, nominal direction
+                #     len(m.set_J_mdt[(g,l,l_diamond)]
+                #         ) if (g,l,l_diamond) in m.set_J_mdt else 0
+                #     +
+                #     #**********************************************************
+                #     # undirected preselected arcs, reverse direction
+                #     sum(1
+                #         for j in m.set_J_pre[(g,l_diamond,l)]
+                #         if j in m.set_J_und[(g,l_diamond,l)]
+                #         ) if (g,l_diamond,l) in m.set_J_pre else 0
+                #     +
+                #     #**********************************************************
+                #     # undirected mandatory arcs, reverse direction
+                #     sum(1
+                #         for j in m.set_J_mdt[(g,l_diamond,l)]
+                #         if j in m.set_J_und[(g,l_diamond,l)]
+                #         ) if (g,l_diamond,l) in m.set_J_mdt else 0
+                #     #**********************************************************
+                #     for l_diamond in m.set_L[g]
+                #     if l_diamond not in m.set_L_imp[g]
+                #     if l_diamond != l
+                #     )
                 )
             
             if temp_constr == True: