diff --git a/src/sim_transmission_loss_node.py b/src/sim_transmission_loss_node.py
index 6ca53edc67266ca30e893954fedb66a70a30ebfb..83264fde3cd9d686fcfc64fc119822ae848c1880 100755
--- a/src/sim_transmission_loss_node.py
+++ b/src/sim_transmission_loss_node.py
@@ -19,67 +19,72 @@ class SimTransmissionLossNode(object):
         rospy.init_node('sim_transmission_loss_node', log_level=rospy.INFO)
         rospy.loginfo("Starting sim_transmission_loss_node...")
 
-        # Check that bellhop.exe is available.  If it isn't, crash our now rather than waiting until we try to
-        # simulate.
-        if which('bellhop.exe') is None:
-            rospy.logfatal("bellhop.exe was not found on your path (check the ros_acomms README for instructions). " 
-                    "sim_transmission_loss_node terminating.")
-            exit()
-
         # Get node parameters
         self.sound_speed = rospy.get_param('~sound_speed', default=1500)
-        self.water_depth = rospy.get_param('~water_depth', default=None)
+        self.water_depth = rospy.get_param('~water_depth', default=1000)
         self.plot = rospy.get_param('~plot', default=False)
-
+        self.model = rospy.get_param('~model', default='bellhop')
         self.bellhop_env_nbeams = rospy.get_param('~bellhop_env_nbeams', default=3000)
         self.bellhop_transmission_loss_mode = rospy.get_param('~bellhop_transmission_loss_mode', default='incoherent')
         self.bellhop_arrivals = rospy.get_param('~bellhop_arrivals', default=False)
 
-        # Check node parameters
-        # TODO: check validity of the parameters here and output contents to log
-
-        self.env = pm.create_env2d(name='SimTransmissionEnvironment',
-                                   bottom_absorption=0.1,       # [dB/wavelength]
-                                   bottom_density=1600,         # [kg/m^3]
-                                   bottom_roughness=0,          # [m (RMS)]
-                                   bottom_soundspeed=1600,      # [m/s]
-                                   depth=1000,                  # [m]
-                                   depth_interp='linear',       # [curvilinear/linear]
-                                   frequency=10000,             # [Hz]                          ###### Changes
-                                   max_angle=80,                # [deg]
-                                   min_angle=-80,               # [deg]
-                                   nbeams=0,                    # [Number of beams 0 = auto]
-                                   rx_depth=10,                 # [m]                           ###### Changes
-                                   rx_range=1000,               # [m]                           ###### Changes
-                                   soundspeed=1500,             # [m/s]
-                                   soundspeed_interp='spline',  # [spline/linear]
-                                   surface=None,                # [surface profile]
-                                   surface_interp='linear',     # [curvilinear/linear]
-                                   tx_depth=5,                  # [m]                           ######  Changes
-                                   tx_directionality=None,      # [(deg, dB)...]
-                                   type='2D'                    # [2D/3D]
-                                   )
-
-
-        if self.sound_speed is not None:
-            # TODO: Parse sound speed arrays and pass into environment
-            self.env['sound_speed'] = self.sound_speed
-
-        if self.water_depth is not None:
-            rospy.logdebug("Parameter water_depth: " + str(self.water_depth))
-            self.env['depth'] = self.water_depth
-
-        if self.bellhop_env_nbeams is not None:
-            rospy.logdebug("Parameter bellhop env nbeams: " + str(self.bellhop_env_nbeams))
-            self.env['nbeams'] = self.bellhop_env_nbeams
-
-        pm.print_env(self.env)
-
-        # Check that the environment is sane
-        try:
-            pm.check_env2d(self.env)
-        except ValueError as e:
-            rospy.logerr("Error in Bellhop environment: {}\nUsing environment:\n{}".format(e, self.env))
+        if self.model == 'bellhop':
+            # Check that bellhop.exe is available.  If it isn't, crash our now rather than waiting until we try to
+            # simulate.
+            if which('bellhop.exe') is None:
+                rospy.logfatal("bellhop.exe was not found on your path (check the ros_acomms README for instructions). " 
+                        "sim_transmission_loss_node terminating.")
+                exit()
+
+            # Check node parameters
+            # TODO: check validity of the parameters here and output contents to log
+
+            self.env = pm.create_env2d(name='SimTransmissionEnvironment',
+                                       bottom_absorption=0.1,       # [dB/wavelength]
+                                       bottom_density=1600,         # [kg/m^3]
+                                       bottom_roughness=0,          # [m (RMS)]
+                                       bottom_soundspeed=1600,      # [m/s]
+                                       depth=1000,                  # [m]
+                                       depth_interp='linear',       # [curvilinear/linear]
+                                       frequency=10000,             # [Hz]                          ###### Changes
+                                       max_angle=80,                # [deg]
+                                       min_angle=-80,               # [deg]
+                                       nbeams=0,                    # [Number of beams 0 = auto]
+                                       rx_depth=10,                 # [m]                           ###### Changes
+                                       rx_range=1000,               # [m]                           ###### Changes
+                                       soundspeed=1500,             # [m/s]
+                                       soundspeed_interp='spline',  # [spline/linear]
+                                       surface=None,                # [surface profile]
+                                       surface_interp='linear',     # [curvilinear/linear]
+                                       tx_depth=5,                  # [m]                           ######  Changes
+                                       tx_directionality=None,      # [(deg, dB)...]
+                                       type='2D'                    # [2D/3D]
+                                       )
+
+
+            if self.sound_speed is not None:
+                # TODO: Parse sound speed arrays and pass into environment
+                self.env['sound_speed'] = self.sound_speed
+
+            if self.water_depth is not None:
+                rospy.logdebug("Parameter water_depth: " + str(self.water_depth))
+                self.env['depth'] = self.water_depth
+
+            if self.bellhop_env_nbeams is not None:
+                rospy.logdebug("Parameter bellhop env nbeams: " + str(self.bellhop_env_nbeams))
+                self.env['nbeams'] = self.bellhop_env_nbeams
+
+            pm.print_env(self.env)
+
+            # Check that the environment is sane
+            try:
+                pm.check_env2d(self.env)
+            except ValueError as e:
+                rospy.logerr("Error in Bellhop environment: {}\nUsing environment:\n{}".format(e, self.env))
+        else:
+            # unknown model
+            rospy.loginfo("Unknown or default model specified, modeled RL will match TL")
+            pass
 
         # Subscribe to sound speed profile updates, if they are available
         self.ssp_subscriber = rospy.Subscriber('sound_speed_profile', SoundSpeedProfile, self.on_ssp_update)
@@ -145,6 +150,13 @@ class SimTransmissionLossNode(object):
         return GetOptimalTxDepthResponse(rcv_rx_level_db=best_rl, optimal_tx_depth=best_depth)
 
     def get_receive_level(self, horizontal_range, src_depth, dest_depth, center_frequency=10000, tx_level_db=185):
+        if self.model == 'bellhop':
+            return self.get_receive_level_bellhop(horizontal_range, src_depth, dest_depth,
+                                                  center_frequency, tx_level_db)
+        else:
+            return 185
+
+    def get_receive_level_bellhop(self, horizontal_range, src_depth, dest_depth, center_frequency=10000, tx_level_db=185):
         # Modify environment file
         self.env['tx_depth'] = src_depth
         self.env['rx_depth'] = dest_depth