diff --git a/examples/Simple_Realistic_Railway_Generator.py b/examples/Simple_Realistic_Railway_Generator.py
index 129ab75a98c51c5561934f3e7c3747bd8b2bc954..98a2e39e778a69b78c51cef664d443c859feaf34 100644
--- a/examples/Simple_Realistic_Railway_Generator.py
+++ b/examples/Simple_Realistic_Railway_Generator.py
@@ -181,23 +181,18 @@ def realistic_rail_generator(num_cities=5,
             datas = station_tracks[city_loop]
             if len(datas) > 1:
                 a = datas[0]
-                if len(a) > 2:
-                    j = 2
-                    start_node = a[j]
+                if len(a) > 0:
+                    start_node = a[np.random.choice(len(a) - 2) + 1]
                     b = []
                     for i in np.arange(1, len(datas)):
                         b = datas[i]
                         if len(b) > 2:
-                            end_node = b[j + 2]
-                            connection = connect_from_nodes(rail_trans, rail_array, start_node, end_node)
-                            if len(connection) > 0:
-                                nodes_added.append(start_node)
-                                nodes_added.append(end_node)
-                            if i % 2 == 0:
-                                j = j - 2
-                            else:
-                                j = j + 2
-                            start_node = end_node
+                            x = np.random.choice(len(b) - 2) + 1
+                            end_node = b[x]
+                            connection = connect_rail(rail_trans, rail_array, start_node, end_node)
+                            nodes_added.append(start_node)
+                            nodes_added.append(end_node)
+                            start_node = b[np.random.choice(len(b) - 2) + 1]
 
         return nodes_added
 
@@ -409,7 +404,7 @@ def realistic_rail_generator(num_cities=5,
         # ----------------------------------------------------------------------------------
         # connect stations
         # TODO remove true/false block
-        if False:
+        if True:
             if do_random_connect_stations:
                 connect_random_stations(rail_trans, rail_array, s_nodes, e_nodes, nodes_added,
                                         inter_connect_max_nbr_of_shortes_city)
@@ -473,9 +468,9 @@ for itrials in range(1000):
     np.random.seed(0 * int(time.time()))
     env = RailEnv(width=40 + np.random.choice(100),
                   height=40 + np.random.choice(100),
-                  rail_generator=realistic_rail_generator(num_cities=2 + np.random.choice(10),
+                  rail_generator=realistic_rail_generator(num_cities=2000 + np.random.choice(10),
                                                           city_size=10 + np.random.choice(10),
-                                                          allowed_rotation_angles=[-90, -45, 0, 45, 90],
+                                                          allowed_rotation_angles=np.arange(-180, 180, 15),
                                                           max_number_of_station_tracks=np.random.choice(4) + 4,
                                                           nbr_of_switches_per_station_track=np.random.choice(4) + 2,
                                                           connect_max_nbr_of_shortes_city=np.random.choice(4) + 2,