diff --git a/osx/fib-table-controller.mm b/osx/fib-table-controller.mm
new file mode 100644
index 0000000..2f8e96e
--- /dev/null
+++ b/osx/fib-table-controller.mm
@@ -0,0 +1,69 @@
+/* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil -*- */
+/*
+ * @copyright See LICENCE for copyright and license information.
+ *
+ * @author Alexander Afanasyev <alexander.afanasyev@ucla.edu>
+ * @author Ilya Moiseenko <iliamo@ucla.edu>
+ */
+
+#include "config.h"
+#import "fib-table-controller.h"
+
+@implementation FibTableController
+
+- (void)loadStatus:(NSXMLDocument *)document
+{
+  m_document = document;
+}
+
+- (NSInteger)numberOfRowsInTableView:(NSTableView *)aTableView
+{
+  if (m_document == nil)
+    {
+      return 0;
+    }
+  else
+    {
+      return [[m_document rootElement] childCount];
+    }
+}
+
+-(id)tableView:(NSTableView *)aTableView
+  objectValueForTableColumn:(NSTableColumn *)aTableColumn 
+  row:(NSInteger)rowIndex
+{
+  NSXMLNode *element = [[m_document rootElement] childAtIndex:rowIndex];
+
+  if([[[aTableColumn headerCell] stringValue] isEqual:@"NDN prefix"])
+  {
+    return [[element childAtIndex:2] stringValue];
+  }
+  else if([[[aTableColumn headerCell] stringValue] isEqual:@"Face ID"])
+  {
+    return [[element childAtIndex:0] stringValue];
+  }
+  else if([[[aTableColumn headerCell] stringValue] isEqual:@"Endpoint"])
+  {
+    return [[element childAtIndex:1] stringValue];
+  }
+  
+  return nil;
+}
+
+///////////////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////////////
+
+- (NSString *)getFaceByRowIndex:(NSInteger)index
+{
+  NSXMLNode *element = [[m_document rootElement] childAtIndex:index];
+  return [[element childAtIndex:0] stringValue];
+}
+
+- (NSString *)getPrefixByRowIndex:(NSInteger)index
+{
+  NSXMLNode *element = [[m_document rootElement] childAtIndex:index];
+  return [[element childAtIndex:2] stringValue];
+}
+
+@end
