diff --git a/src/main/java/ui/window/JDialogAvatarModelChecker.java b/src/main/java/ui/window/JDialogAvatarModelChecker.java
index 29252a2eab531a6dc625bafef42bc0395b4cdbf1..833b71abd458decb7bac2eab2ae699e385800f7a 100644
--- a/src/main/java/ui/window/JDialogAvatarModelChecker.java
+++ b/src/main/java/ui/window/JDialogAvatarModelChecker.java
@@ -43,7 +43,6 @@ import avatartranslator.AvatarSpecification;
 import avatartranslator.AvatarStateMachineElement;
 import avatartranslator.modelchecker.AvatarModelChecker;
 import avatartranslator.modelchecker.SafetyProperty;
-import avatartranslator.modelchecker.SpecificationLiveness;
 import avatartranslator.modelchecker.SpecificationReachability;
 import avatartranslator.modelchecker.SpecificationPropertyPhase;
 import myutil.*;
@@ -185,6 +184,9 @@ public class JDialogAvatarModelChecker extends javax.swing.JFrame implements Act
         if (graphDirDot == null) {
             graphDirDot = _graphDir + File.separator + "rgavatar$.dot";
         }
+        
+        stateLimitValue = "100";
+        timeLimitValue =  "5000";
 
         //showLiveness = _showLiveness;
         showLiveness = true;
@@ -219,11 +221,24 @@ public class JDialogAvatarModelChecker extends javax.swing.JFrame implements Act
         // Issue #41 Ordering of tabbed panes 
         jp1 = GraphicLib.createTabbedPane();//new JTabbedPane();
 
+        JPanel jpopt = new JPanel();
+        GridBagLayout gridbagopt = new GridBagLayout();
+        GridBagConstraints copt = new GridBagConstraints();
+        jpopt.setLayout(gridbagopt);
+        jpopt.setBorder(new javax.swing.border.TitledBorder("Options"));
+
+        copt.gridwidth = 1;
+        copt.gridheight = 1;
+        copt.weighty = 1.0;
+        copt.weightx = 1.0;
+        copt.fill = GridBagConstraints.HORIZONTAL;
+        copt.gridwidth = GridBagConstraints.REMAINDER; //end row
+        
         JPanel jp01 = new JPanel();
         GridBagLayout gridbag01 = new GridBagLayout();
         GridBagConstraints c01 = new GridBagConstraints();
         jp01.setLayout(gridbag01);
-        jp01.setBorder(new javax.swing.border.TitledBorder("Options"));
+        jp01.setBorder(new javax.swing.border.TitledBorder("Graph generation options"));
 
         c01.gridwidth = 1;
         c01.gridheight = 1;
@@ -249,55 +264,95 @@ public class JDialogAvatarModelChecker extends javax.swing.JFrame implements Act
         ignoreInternalStates.addActionListener(this);
         jp01.add(ignoreInternalStates, c01);
         
+
+        //Limitations
+        c01.gridwidth = 1;
+        stateLimit = new JCheckBox("Limit number of states in RG:", limitStatesSelected);
+        stateLimit.addActionListener(this);
+        jp01.add(stateLimit, c01);
+        c01.gridwidth = GridBagConstraints.REMAINDER;
+        stateLimitField = new JTextField(stateLimitValue);
+        jp01.add(stateLimitField, c01);
+        c01.gridwidth = 1;
+        timeLimit = new JCheckBox("Time constraint for RG generation (ms):", limitTimeSelected);
+        timeLimit.addActionListener(this);
+        jp01.add(timeLimit, c01);
+        c01.gridwidth = GridBagConstraints.REMAINDER;
+        timeLimitField = new JTextField(timeLimitValue);
+        jp01.add(timeLimitField, c01);
+
+
+
+        JPanel jpbasic = new JPanel();
+        GridBagLayout gridbagbasic = new GridBagLayout();
+        GridBagConstraints cbasic = new GridBagConstraints();
+        jpbasic.setLayout(gridbagbasic);
+        jpbasic.setBorder(new javax.swing.border.TitledBorder("Properties verification"));
+
+        cbasic.gridwidth = 1;
+        cbasic.gridheight = 1;
+        cbasic.weighty = 1.0;
+        cbasic.weightx = 1.0;
+        cbasic.fill = GridBagConstraints.HORIZONTAL;
+        cbasic.gridwidth = GridBagConstraints.REMAINDER; //end row
+        
+        
+        // Deadlocks
         noDeadlocks = new JCheckBox("No deadlocks?", checkNoDeadSelected);
         noDeadlocks.addActionListener(this);
-        jp01.add(noDeadlocks, c01);
-
+        jpbasic.add(noDeadlocks, cbasic);
 
+        
         // Reachability
+        cbasic.gridwidth = 1;
+        jpbasic.add(new JLabel("Reachability:"), cbasic);
         reachabilities = new ButtonGroup();
 
-        noReachability = new JRadioButton("No reachability");
+        noReachability = new JRadioButton("None");
         noReachability.addActionListener(this);
-        jp01.add(noReachability, c01);
+        jpbasic.add(noReachability, cbasic);
         reachabilities.add(noReachability);
 
-        reachabilityCheckable = new JRadioButton("Reachability of selected states");
+        reachabilityCheckable = new JRadioButton("Selected states");
         reachabilityCheckable.addActionListener(this);
-        jp01.add(reachabilityCheckable, c01);
+        jpbasic.add(reachabilityCheckable, cbasic);
         reachabilities.add(reachabilityCheckable);
 
-        reachabilityAllStates = new JRadioButton("Reachability of all states");
+        cbasic.gridwidth = GridBagConstraints.REMAINDER;
+        reachabilityAllStates = new JRadioButton("All states");
         reachabilityAllStates.addActionListener(this);
-        jp01.add(reachabilityAllStates, c01);
+        jpbasic.add(reachabilityAllStates, cbasic);
         reachabilities.add(reachabilityAllStates);
-
+        
         noReachability.setSelected(reachabilitySelected == REACHABILITY_NONE);
         reachabilityCheckable.setSelected(reachabilitySelected == REACHABILITY_SELECTED);
         reachabilityAllStates.setSelected(reachabilitySelected == REACHABILITY_ALL);
-
-
+        
+        
         // Liveness
+        cbasic.gridwidth = 1;
+        jpbasic.add(new JLabel("Liveness:"), cbasic);
         liveness = new ButtonGroup();
 
-        noLiveness = new JRadioButton("No liveness");
+        noLiveness = new JRadioButton("None");
         noLiveness.addActionListener(this);
         if (showLiveness) {
-            jp01.add(noLiveness, c01);
+            jpbasic.add(noLiveness, cbasic);
         }
         liveness.add(noLiveness);
 
-        livenessCheckable = new JRadioButton("Liveness of selected states");
+        livenessCheckable = new JRadioButton("Selected states");
         livenessCheckable.addActionListener(this);
         if (showLiveness) {
-            jp01.add(livenessCheckable, c01);
+            jpbasic.add(livenessCheckable, cbasic);
         }
         liveness.add(livenessCheckable);
 
-        livenessAllStates = new JRadioButton("Liveness of all states");
+        cbasic.gridwidth = GridBagConstraints.REMAINDER;
+        livenessAllStates = new JRadioButton("All states");
         livenessAllStates.addActionListener(this);
         if (showLiveness) {
-            jp01.add(livenessAllStates, c01);
+            jpbasic.add(livenessAllStates, cbasic);
         }
         liveness.add(livenessAllStates);
 
@@ -309,35 +364,30 @@ public class JDialogAvatarModelChecker extends javax.swing.JFrame implements Act
         //Safety pragmas
         safety = new JCheckBox("Safety Pragmas", safetySelected);
         safety.addActionListener(this);
-        jp01.add(safety, c01);
-
-        //Limitations
-        stateLimit = new JCheckBox("Limit number of states in GF", limitStatesSelected);
-        stateLimit.addActionListener(this);
-        jp01.add(stateLimit, c01);
-        stateLimitField = new JTextField(stateLimitValue);
-        jp01.add(stateLimitField, c01);
-        timeLimit = new JCheckBox("Limit time for GF generation (ms)", limitTimeSelected);
-        timeLimit.addActionListener(this);
-        jp01.add(timeLimit, c01);
-        timeLimitField = new JTextField(timeLimitValue);
-        jp01.add(timeLimitField, c01);
-
-
+        jpbasic.add(safety, cbasic);
+        
+        if (spec.getSafetyPragmas() == null || spec.getSafetyPragmas().isEmpty()) {
+            safety.setEnabled(false);
+        }
+        
+        jpopt.add(jp01, c01);
+        jpopt.add(jpbasic, cbasic);
+        
         // RG
         saveGraphAUT = new JCheckBox("Reachability Graph Generation", graphSelected);
         saveGraphAUT.addActionListener(this);
         //saveGraphAUT.addSelectionListener(this);
-        jp01.add(saveGraphAUT, c01);
+        jpopt.add(saveGraphAUT, copt);
         graphPath = new JTextField(graphDir);
-        jp01.add(graphPath, c01);
+        jpopt.add(graphPath, copt);
         saveGraphDot = new JCheckBox("Save RG in dotty:", graphSelectedDot);
         saveGraphDot.addActionListener(this);
         //saveGraphDot.setEnebaled(false);
-        jp01.add(saveGraphDot, c01);
+        jpopt.add(saveGraphDot, copt);
         graphPathDot = new JTextField(graphDirDot);
-        jp01.add(graphPathDot, c01);
-        c.add(jp01, BorderLayout.NORTH);
+        jpopt.add(graphPathDot, copt);
+        
+        c.add(jpopt, BorderLayout.NORTH);
 
 
         jta = new ScrolledJTextArea();