diff --git a/src/gtests/tests.cpp b/src/gtests/tests.cpp
index 0367f775ba40be7e1be95bb81f5d9a09524be388..dd5f34a70dafac1579da5d60db919c6a83071a37 100644
--- a/src/gtests/tests.cpp
+++ b/src/gtests/tests.cpp
@@ -251,8 +251,9 @@ TEST(ExcuseTest, GenerateExcusesAutas) {
     using namespace boost::assign;
     FolderExcusePairs test_folders; 
     insert( test_folders )
-        ( "autas_p06_1" , ExcuseActionPair(ListPredicateGroup("freeFbHb1()"), "placependulum")     )
-        ( "autas_p06_2" , ExcuseActionPair(ListPredicateGroup("freeFbHb2()"), "screwpendulumhead") 
+        ( "autas_p06_1"   , ExcuseActionPair(ListPredicateGroup("freeFbHb1()"), "placependulum")     )
+        ( "autas_p06_2"   , ExcuseActionPair(ListPredicateGroup("freeFbHb2()"), "screwpendulumhead") )
+        ( "autas_horiz_2" , ExcuseActionPair(ListPredicateGroup("clearB1()")  , "placepeg1") 
         );
     
     BOOST_FOREACH(FolderExcusePairs::value_type folder_excuse, test_folders) {
diff --git a/tests/excuse_tests/autas_horiz_2/reward.dat b/tests/excuse_tests/autas_horiz_2/reward.dat
new file mode 100644
index 0000000000000000000000000000000000000000..a1c3bc52536a2718e55f54b167939c5c3c9212ce
--- /dev/null
+++ b/tests/excuse_tests/autas_horiz_2/reward.dat
@@ -0,0 +1 @@
+1.0 pegplacedB1FbHb1() pegplacedB2FbHb2() pegplacedB3FbHb3() pegplacedB4FbHb4() shaftplacedSh() pendulumplacedPn() pendulumheadscrewedPh() separatorplacedSp() faceplatefrontplacedFf()
\ No newline at end of file
diff --git a/tests/excuse_tests/autas_horiz_2/rexd_config.cfg b/tests/excuse_tests/autas_horiz_2/rexd_config.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..0a6efc40ee72374e721b9be631dc6e55ebd9563b
--- /dev/null
+++ b/tests/excuse_tests/autas_horiz_2/rexd_config.cfg
@@ -0,0 +1,79 @@
+# General options
+scenario = autas
+
+simulator = true
+simulator_port = 0
+planner_port = 0
+simulator_current_state_path = state_simulator.dat
+simulator_init_state_path = simulated_init_state
+
+transitions_backup_path = transitions_full.dat
+
+rule_analysis = true
+rule_analysis_equivalent_rules = true
+rule_analysis_subgoals = false
+
+# exploration
+exploration = true
+exploration_known_threshold = 2
+
+confirm_dangerous_actions = true
+
+use_rmax = true
+use_vmin = false
+rmax_reward = 15
+vmin_reward = 0.1
+
+# Other Options
+remove_nop_rules = true
+
+# learner
+pasula_alpha_pen = 0.25
+pasula_noise_lower_bound = 1e-10
+pasula_noise_lower_bound_default_rule = 1e-12
+
+# Planner
+planner = ippc
+goal_file = reward.dat
+final_reward_action = false
+
+prada_config = config
+prada_config_learner = config
+prada_config_teacher = config_teacher
+
+nid_rules_path = rules.dat
+ground_truth_nid_rules_path = simulated_rules.dat
+
+ppddl_rules_path = rules.ppddl
+ppddl_rules_template_path = template_ppddl
+
+planning_time = 2000
+planning_fast_time = 1000
+planning_horizon = 14
+planning_epsilon = 0.05
+planning_noop_reward = 0.05
+planning_reward_step = 1
+
+
+# Teacher
+teacher = true
+teacher_can_fail = false
+auto_teacher = true
+auto_teacher_excuse_autoexecute = true
+auto_teacher_infinite = true
+auto_teacher_infinite_retries = 5
+auto_teacher_infinite_full_retries = 1
+auto_teacher_autodead = true
+ 
+auto_teacher_zealous = false
+auto_teacher_autas_hacks = true
+auto_teacher_dangerous_actions = true
+
+# Auto experiments
+auto_experiments = true
+auto_experiments_num = 30
+auto_experiments_auto_finish = true
+auto_experiments_auto_next = false
+auto_experiments_auto_next_num = 1
+auto_experiments_command = false
+
diff --git a/tests/excuse_tests/autas_horiz_2/rules.dat b/tests/excuse_tests/autas_horiz_2/rules.dat
new file mode 100644
index 0000000000000000000000000000000000000000..ae901b956918a23ff8104aa985d3dbdd68043b41
--- /dev/null
+++ b/tests/excuse_tests/autas_horiz_2/rules.dat
@@ -0,0 +1,112 @@
+ACTION: # 121
+placepeg2()
+CONTEXT:
+
+OUTCOMES:
+1 pegplacedB2FbHb2() -freeFbHb2()
+0 <noise>
+
+ACTION: # 166
+placepeg4()
+CONTEXT:
+
+OUTCOMES:
+1 pegplacedB4FbHb4() -freeFbHb4()
+0 <noise>
+
+ACTION: # 63
+placependulum()
+CONTEXT:
+
+OUTCOMES:
+1 pendulumplacedPn()
+0 <noise>
+
+ACTION: # 200
+screwpendulumhead()
+CONTEXT:
+pendulumplacedPn()
+OUTCOMES:
+1 pendulumheadscrewedPh()
+0 <noise>
+
+ACTION: # 238
+screwpendulumhead()
+CONTEXT:
+-pendulumplacedPn()
+OUTCOMES:
+1 
+0 <noise>
+
+ACTION: # 92
+repositionpeg1()
+CONTEXT:
+
+OUTCOMES:
+1 -horizontalB1()
+0 <noise>
+
+ACTION: # 214
+placeseparator()
+CONTEXT:
+
+OUTCOMES:
+1 separatorplacedSp()
+0 <noise>
+
+ACTION: # 223
+placefaceplatefront()
+CONTEXT:
+separatorplacedSp()
+OUTCOMES:
+1 faceplatefrontplacedFf() -clearB1() -clearB2() -clearB3() -clearB4() -clearPn() -clearSp()
+0 <noise>
+
+ACTION: # 226
+placefaceplatefront()
+CONTEXT:
+-separatorplacedSp()
+OUTCOMES:
+1 
+0 <noise>
+
+ACTION: # 147
+placepeg3()
+CONTEXT:
+
+OUTCOMES:
+1 pegplacedB3FbHb3() -freeFbHb3()
+0 <noise>
+
+ACTION: # 38
+placeshaft()
+CONTEXT:
+
+OUTCOMES:
+1 shaftplacedSh() -freeFbHsh()
+0 <noise>
+
+ACTION: # 183
+placepeg1()
+CONTEXT:
+clearB1() -freeFbHsh()
+OUTCOMES:
+1 pegplacedB1FbHb1() -freeFbHb1()
+0 <noise>
+
+ACTION: # 295
+placepeg1()
+CONTEXT:
+clearB1() freeFbHsh()
+OUTCOMES:
+1 -clearB1()
+0 <noise>
+
+ACTION: # 309
+placepeg1()
+CONTEXT:
+-clearB1()
+OUTCOMES:
+1 
+0 <noise>
+
diff --git a/tests/excuse_tests/autas_horiz_2/state_simulator.dat b/tests/excuse_tests/autas_horiz_2/state_simulator.dat
new file mode 100644
index 0000000000000000000000000000000000000000..92b2931026b32520da882111c21da5cfe8317c51
--- /dev/null
+++ b/tests/excuse_tests/autas_horiz_2/state_simulator.dat
@@ -0,0 +1 @@
+freeFbHb1() -clearB1() -pegplacedB1FbHb1() freeFbHb2() clearB2() -pegplacedB2FbHb2() -freeFbHb3() clearB3() pegplacedB3FbHb3() freeFbHb4() clearB4() -pegplacedB4FbHb4() -freeFbHsh() clearSh() shaftplacedSh() clearSp() -separatorplacedSp() clearPn() -pendulumplacedPn() clearPh() -pendulumheadscrewedPh() clearFf() -faceplatefrontplacedFf() horizontalB1() -horizontalB2() -horizontalB3() -horizontalB4() -horizontalSh()
\ No newline at end of file
diff --git a/tests/excuse_tests/autas_horiz_2/template_ppddl b/tests/excuse_tests/autas_horiz_2/template_ppddl
new file mode 100644
index 0000000000000000000000000000000000000000..00de6d2b188ce7e5bd71f30443286fb09cc5a307
--- /dev/null
+++ b/tests/excuse_tests/autas_horiz_2/template_ppddl
@@ -0,0 +1,180 @@
+<init>
+(define (domain ppddl_mdp)
+    (:requirements :fluents :adl :probabilistic-effects :rewards :conditional-effects)
+    <pre_domain>
+    (:predicates 
+        (vehicle_at__71)
+        (vehicle_at__72)
+        (vehicle_at__73)
+        (vehicle_at__81)
+        (vehicle_at__82)
+        (vehicle_at__91)
+        (spare_in__71)
+        (spare_in__72)
+        (spare_in__73)
+        (spare_in__81)
+        (spare_in__82)
+        (spare_in__91)
+        (road__71_72)
+        (road__71_81)
+        (road__72_73)
+        (road__72_82)
+        (road__81_72)
+        (road__81_82)
+        (road__81_91)
+        (road__82_73)
+        (road__91_82)
+        (not_flattire)
+        (hasspare)
+    )
+    <pre_rules>
+    (:action placeshaft
+        :effect (and
+            (when (and (ontable_sh) (free_fb_hsh)) (probabilistic 1.0 (and (shaftplaced_sh) (not (ontable_sh)) (not(free_fb_hsh)))))
+            ; Reward
+            (when (not (faceplatefrontplaced_ff)) (decrease (reward) 1.0))
+        )
+    )
+    (:action placependulum
+        :effect (and
+            (when (and (shaftplaced_sh) (ontable_pn)) (pendulumplaced_pn))
+            ; Reward
+            (when (not (faceplatefrontplaced_ff)) (decrease (reward) 1.0))
+        )
+    )
+    (:action screwpendulumhead
+        :effect (and
+            (when (and (pendulumplaced_pn) (ontable_ph)) (probabilistic 1.0 (and (pendulumheadscrewed_ph) (not (ontable_ph)))))
+            ; Reward
+            (when (not (faceplatefrontplaced_ff)) (decrease (reward) 1.0))
+        )
+    )
+    (:action placefaceplatefront
+        :parameters
+            (?rover)
+        :effect (and
+            (when (and (rover ?rover) (separatorplaced_sp ?rover) (pendulumplaced_pn)) (probabilistic 1.0 (faceplatefrontplaced_ff)))
+            ; Reward
+            (when (not (faceplatefrontplaced_ff)) (decrease (reward) 1.0))
+        )
+    )
+    
+    <noop_rule>
+    
+    (:action noop
+        :effect (and 
+            (when (and 
+                    (vehicle_at__71)
+        (vehicle_at__72)
+        (vehicle_at__73)
+        (vehicle_at__81)
+        (vehicle_at__82)
+        (vehicle_at__91)
+        (spare_in__71)
+        (spare_in__72)
+        (spare_in__73)
+        (spare_in__81)
+        (spare_in__82)
+        (spare_in__91)
+        (road__71_72)
+        (road__71_81)
+        (road__72_73)
+        (road__72_82)
+        (road__81_82)
+        (road__81_91)
+        (road__82_73)
+        (road__91_82)
+        (not_flattire)
+        (hasspare)
+                ) 
+                (probabilistic 1.0 (and 
+                    (vehicle_at__71)
+        (vehicle_at__72)
+        (vehicle_at__73)
+        (vehicle_at__81)
+        (vehicle_at__82)
+        (vehicle_at__91)
+        (spare_in__71)
+        (spare_in__72)
+        (spare_in__73)
+        (spare_in__81)
+        (spare_in__82)
+        (spare_in__91)
+        (road__71_72)
+        (road__71_81)
+        (road__72_73)
+        (road__72_82)
+        (road__81_82)
+        (road__81_91)
+        (road__82_73)
+        (road__91_82)
+        (not_flattire)
+        (hasspare)
+                ))
+            )
+            (when (and 
+                    (not (vehicle_at__71))
+        (not (vehicle_at__72))
+        (not (vehicle_at__73))
+        (not (vehicle_at__81))
+        (not (vehicle_at__82))
+        (not (vehicle_at__91))
+        (not (spare_in__71))
+        (not (spare_in__72))
+        (not (spare_in__73))
+        (not (spare_in__81))
+        (not (spare_in__82))
+        (not (spare_in__91))
+        (not (road__71_72))
+        (not (road__71_81))
+        (not (road__72_73))
+        (not (road__72_82))
+        (not (road__81_82))
+        (not (road__81_91))
+        (not (road__82_73))
+        (not (road__91_82))
+        (not (not_flattire))
+        (not (hasspare))
+                ) 
+                (probabilistic 1.0 (and 
+                    (not (vehicle_at__71))
+        (not (vehicle_at__72))
+        (not (vehicle_at__73))
+        (not (vehicle_at__81))
+        (not (vehicle_at__82))
+        (not (vehicle_at__91))
+        (not (spare_in__71))
+        (not (spare_in__72))
+        (not (spare_in__73))
+        (not (spare_in__81))
+        (not (spare_in__82))
+        (not (spare_in__91))
+        (not (road__71_72))
+        (not (road__71_81))
+        (not (road__72_73))
+        (not (road__72_82))
+        (not (road__81_82))
+        (not (road__81_72))
+        (not (road__81_91))
+        (not (road__82_73))
+        (not (road__91_82))
+        (not (not_flattire))
+        (not (hasspare))
+                ))
+            )
+            ; Reward
+            (when (not (vehicle_at__73)) (decrease (reward) 0.9))
+        )
+    )
+    <post_rules>
+    
+)
+(define (problem ppddl_mdp__1)
+    (:domain ppddl_mdp)
+    (:init 
+    )
+    (:metric maximize (reward))
+    ;; (:horizon <horizon>)
+    ;; (:discount 1.0)
+)
+<end>