diff --git a/ofagent/main.py b/ofagent/main.py
new file mode 100755
index 0000000..a8bfe7f
--- /dev/null
+++ b/ofagent/main.py
@@ -0,0 +1,57 @@
+#!/usr/bin/env python
+#
+# Copyright 2016 the original author or authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+"""TODO This is a POC placeholder """
+import grpc
+from twisted.internet import reactor
+
+from agent import Agent
+from protos import voltha_pb2
+
+from grpc_client import GrpcClient
+
+
+if __name__ == '__main__':
+
+    # Create grpc channel to Voltha and grab client stub
+    channel = grpc.insecure_channel('localhost:50055')
+
+    # Connect to voltha using grpc and fetch the list of logical devices
+    stub = voltha_pb2.VolthaLogicalLayerStub(channel)
+    devices = stub.ListLogicalDevices(voltha_pb2.NullMessage()).items
+    print 'device id and datapaht_id list:'
+    for device in devices:
+        print '\t{} -> {}'.format(device.id, device.datapath_id)
+
+    # make a device.datapath_id -> device.id map (this will need to be actively
+    # managed in the real agent based on devices coming and going
+    device_id_map = dict((device.datapath_id, device.id) for device in devices)
+
+    # Create shared gRPC API object
+    grpc_client = GrpcClient(channel, device_id_map)
+
+    # Instantiate an OpenFlow agent for each logical device
+    agents = [
+        Agent('localhost:6633', device.datapath_id, grpc_client).run()
+        for device in devices
+    ]
+
+    def shutdown():
+        [a.stop() for a in agents]
+
+    reactor.addSystemEventTrigger('before', 'shutdown', shutdown)
+    reactor.run()
