diff --git a/src/main/java/ctbrec/sites/mfc/MyFreeCamsModel.java b/src/main/java/ctbrec/sites/mfc/MyFreeCamsModel.java
index f25b2db1..2a98bdad 100644
--- a/src/main/java/ctbrec/sites/mfc/MyFreeCamsModel.java
+++ b/src/main/java/ctbrec/sites/mfc/MyFreeCamsModel.java
@@ -40,6 +40,7 @@ public class MyFreeCamsModel extends AbstractModel {
     private int uid;
     private String hlsUrl;
     private double camScore;
+    private int viewerCount;
     private State state;
     private int resolution[];
     private MyFreeCams site;
@@ -232,6 +233,8 @@ public class MyFreeCamsModel extends AbstractModel {
                 LOG.warn("Couldn't url decode topic", e);
             }
         });
+
+        viewerCount = Optional.ofNullable(state.getM()).map((m) -> m.getRc()).orElseGet(() -> 0);
     }
 
     @Override
@@ -252,6 +255,14 @@ public class MyFreeCamsModel extends AbstractModel {
         this.uid = uid;
     }
 
+    public int getViewerCount() {
+        return viewerCount;
+    }
+
+    public void setViewerCount(int viewerCount) {
+        this.viewerCount = viewerCount;
+    }
+
     @Override
     public void setSite(Site site) {
         if(site instanceof MyFreeCams) {
diff --git a/src/main/java/ctbrec/sites/mfc/MyFreeCamsTabProvider.java b/src/main/java/ctbrec/sites/mfc/MyFreeCamsTabProvider.java
index 336486c9..f188d458 100644
--- a/src/main/java/ctbrec/sites/mfc/MyFreeCamsTabProvider.java
+++ b/src/main/java/ctbrec/sites/mfc/MyFreeCamsTabProvider.java
@@ -43,6 +43,12 @@ public class MyFreeCamsTabProvider extends TabProvider {
         updateService.setPeriod(new Duration(TimeUnit.SECONDS.toMillis(10)));
         tabs.add(hd);
 
+        updateService = new PopularModelService();
+        ThumbOverviewTab pop = new ThumbOverviewTab("Most Popular", updateService, myFreeCams);
+        pop.setRecorder(recorder);
+        updateService.setPeriod(new Duration(TimeUnit.SECONDS.toMillis(10)));
+        tabs.add(pop);
+
 
         return tabs;
     }
diff --git a/src/main/java/ctbrec/sites/mfc/PopularModelService.java b/src/main/java/ctbrec/sites/mfc/PopularModelService.java
new file mode 100644
index 00000000..05dc4032
--- /dev/null
+++ b/src/main/java/ctbrec/sites/mfc/PopularModelService.java
@@ -0,0 +1,30 @@
+package ctbrec.sites.mfc;
+
+import java.io.IOException;
+import java.util.List;
+import java.util.stream.Collectors;
+
+import ctbrec.Model;
+import ctbrec.ui.PaginatedScheduledService;
+import javafx.concurrent.Task;
+
+public class PopularModelService extends PaginatedScheduledService {
+
+    @Override
+    protected Task<List<Model>> createTask() {
+        return new Task<List<Model>>() {
+            @Override
+            public List<Model> call() throws IOException {
+                MyFreeCamsClient client = MyFreeCamsClient.getInstance();
+                int modelsPerPage = 50;
+                return client.getModels().stream()
+                        .filter(m -> m.getPreview() != null)
+                        .filter(m -> m.getStreamUrl() != null)
+                        .sorted((m1, m2) -> m2.getViewerCount() - m1.getViewerCount())
+                        .skip( (page-1) * modelsPerPage)
+                        .limit(modelsPerPage)
+                        .collect(Collectors.toList());
+            }
+        };
+    }
+}