diff --git a/workinggroups/assets/js/workinggroup.js b/workinggroups/assets/js/workinggroup.js
deleted file mode 100644
index f08e1be..0000000
--- a/workinggroups/assets/js/workinggroup.js
+++ /dev/null
@@ -1,40 +0,0 @@
-/**
- * Copyright (c) 2019 Eclipse Foundation.
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * Contributors:
- *   Eric Poirier (Eclipse Foundation) - Initial implementation
- *
- * SPDX-License-Identifier: EPL-2.0
- */
-
-$(function() {
-  
-  $('.wg-links a').click(function() {
-    var wg_item = $(this).attr('data-wg');
-    if (wg_item === "wg-all-item") {
-      $('.wg-item').fadeOut("300").promise().done(function() {
-        $('.wg-item').fadeIn("300");
-        $('.wg-item').matchHeight({ remove: true });
-        $('.wg-item:visible').matchHeight();
-      });
-    }
-    else {
-      $('.wg-item').fadeOut("300").promise().done(function() {
-        $('.' + wg_item).fadeIn("300");
-        $('.wg-item').matchHeight({ remove: true });
-        $('.wg-item:visible').matchHeight();
-      });
-    }
-    
-  });
-  
-  $('.wg-all-item').click(function() {
-    $('.wg-item').fadeIn("300");
-    $('.wg-item').matchHeight({ remove: true });
-    $('.wg-item:visible').matchHeight();
-  });
-});
\ No newline at end of file
diff --git a/workinggroups/content/en_explore.php b/workinggroups/content/en_explore.php
index 2ce086c..b15f9d8 100644
--- a/workinggroups/content/en_explore.php
+++ b/workinggroups/content/en_explore.php
@@ -8,20 +8,15 @@
  *
  * Contributors:
  * Eric Poirier (Eclipse Foundation) - Initial implementation
+ * Zhou Fang (Eclipse Foundation)
  *
  * SPDX-License-Identifier: EPL-2.0
  */
 ?>
-<?php $link_html = wg_types_links($working_group); // allow filter to be hidden ?>
-<?php if (!empty($link_html)): ?>
-<div class="background-mid-grey margin-bottom-30 margin-top-40">
-  <div class="dropdown">
-    <button class="btn btn-secondary dropdown-toggle" type="button" data-toggle="dropdown">Filter Working Groups
-    <span class="caret"></span></button>
-    <?php print $link_html ?>
+
+<div class="eclipsefdn-wgs-list">
+  <div class="text-center">
+    <i class="fa fa-spinner fa-pulse fa-2x fa-fw margin-bottom-20"></i>
+    <span class="sr-only">Loading...</span>
   </div>
-</div>
-<?php endif; ?>
-
-<div class="row display-flex flex-wrap"><?php print wg_output($working_group); ?></div>
-
+</div>
\ No newline at end of file
diff --git a/workinggroups/explore.php b/workinggroups/explore.php
index 939c45e..369cd30 100644
--- a/workinggroups/explore.php
+++ b/workinggroups/explore.php
@@ -63,5 +63,4 @@
 
 $Theme->setHtml($html);
 $Theme->setAttributes('header-wrapper', 'header-default-bg-img');
-$App->AddExtraJSFooter('<script type="text/javascript" src="/org/workinggroups/assets/js/workinggroup.js"></script>');
 $Theme->generatePage();
\ No newline at end of file
