diff --git a/js/src/responsive-nav.jquery.js b/js/src/responsive-nav.jquery.js
index <HASH>..<HASH> 100755
--- a/js/src/responsive-nav.jquery.js
+++ b/js/src/responsive-nav.jquery.js
@@ -32,18 +32,28 @@ module.exports = (function($){
       $wrapper = $( options.wrapperSelector ),
       $menuButton = $( options.menuButtonSelector );
 
-    var closeNav = function() {
-      if( options.navType === 'dropdown' ){
-        $this.slideUp();
-      }
-      else{
-        $wrapper.removeClass( options.menuOpenClass );
-      }
+    function _closeNav() {
       $menuButton.removeClass( options.menuButtonActiveClass );
-
       menuOpen = false;
+    }
+
+    function _closeDropdownNav() {
+      $this.slideUp();
+      _closeNav();
+    }
+
+    function _closeOffCanvasNav() {
+      $wrapper.removeClass( options.menuOpenClass );
+      _closeNav();
+    }
+
+    var closeNavStrategies = {
+      dropdown: _closeDropdownNav,
+      offCanvas: _closeOffCanvasNav,
     };
 
+    var closeNav = closeNavStrategies[options.navType] || _closeOffCanvasNav;
+
     var bodyClickFn = function(evt) {
       //if not nav container or a decendant of nav container
       if( !$this.is(evt.target) && $this.has(evt.target).length === 0 ) {
refactor: introduce closeNavStrategies abstraction