diff --git a/src/main/java/net/onrc/onos/api/flowmanager/FlowId.java b/src/main/java/net/onrc/onos/api/flowmanager/FlowId.java
index 9d1f0ed..f6d7f8a 100644
--- a/src/main/java/net/onrc/onos/api/flowmanager/FlowId.java
+++ b/src/main/java/net/onrc/onos/api/flowmanager/FlowId.java
@@ -1,37 +1,41 @@
 package net.onrc.onos.api.flowmanager;
 
+import java.util.Objects;
+
 import net.onrc.onos.api.batchoperation.BatchOperationTarget;
 
 /**
  * Represents ID for Flow objects.
  */
 public class FlowId implements BatchOperationTarget {
-    private final String value;
+    private final long value;
 
     /**
      * Creates new instance with string ID.
+     * <p>
+     * This FlowId instance should be generated with {@link FlowIdGenerator}.
      *
      * @param id String representation of the ID.
      */
-    public FlowId(String id) {
+    public FlowId(long id) {
         value = id;
     }
 
     @Override
     public String toString() {
-        return value;
+        return Long.toString(value);
     }
 
     @Override
     public int hashCode() {
-        return value.hashCode();
+        return Objects.hashCode(value);
     }
 
     @Override
     public boolean equals(Object obj) {
         if (obj instanceof FlowId) {
-            FlowId other = (FlowId) obj;
-            return (this.value.equals(other.value));
+            FlowId that = (FlowId) obj;
+            return Objects.equals(this.value, that.value);
         }
         return false;
     }
diff --git a/src/main/java/net/onrc/onos/api/flowmanager/FlowIdGenerator.java b/src/main/java/net/onrc/onos/api/flowmanager/FlowIdGenerator.java
index e3ab9e3..9b85e22 100644
--- a/src/main/java/net/onrc/onos/api/flowmanager/FlowIdGenerator.java
+++ b/src/main/java/net/onrc/onos/api/flowmanager/FlowIdGenerator.java
@@ -5,9 +5,9 @@
  */
 public interface FlowIdGenerator {
     /**
-     * Generates a globally unique {@link FlowId} instance.
+     * Generates a global unique {@link FlowId} instance.
      *
-     * @return a globally unique {@link FlowId} instance.
+     * @return a global unique {@link FlowId} instance.
      */
-    FlowId getNextId();
+    FlowId getNewId();
 }
diff --git a/src/main/java/net/onrc/onos/core/flowmanager/FlowIdGeneratorWithIdBlockAllocator.java b/src/main/java/net/onrc/onos/core/flowmanager/FlowIdGeneratorWithIdBlockAllocator.java
new file mode 100644
index 0000000..d502d93
--- /dev/null
+++ b/src/main/java/net/onrc/onos/core/flowmanager/FlowIdGeneratorWithIdBlockAllocator.java
@@ -0,0 +1,38 @@
+package net.onrc.onos.core.flowmanager;
+
+import static com.google.common.base.Preconditions.checkNotNull;
+import net.onrc.onos.api.flowmanager.FlowId;
+import net.onrc.onos.api.flowmanager.FlowIdGenerator;
+import net.onrc.onos.core.util.IdBlock;
+import net.onrc.onos.core.util.IdBlockAllocator;
+import net.onrc.onos.core.util.UnavailableIdException;
+
+/**
+ * Generates a global unique FlowId using
+ * {@link IdBlockAllocator#allocateUniqueIdBlock()}.
+ */
+public class FlowIdGeneratorWithIdBlockAllocator implements FlowIdGenerator {
+
+    private final IdBlockAllocator allocator;
+    private IdBlock idBlock;
+
+    /**
+     * Creates a FlowId generator instance using specified ID block allocator.
+     *
+     * @param allocator the ID block allocator to be used
+     */
+    public FlowIdGeneratorWithIdBlockAllocator(IdBlockAllocator allocator) {
+        this.allocator = checkNotNull(allocator);
+        this.idBlock = allocator.allocateUniqueIdBlock();
+    }
+
+    @Override
+    public synchronized FlowId getNewId() {
+        try {
+            return new FlowId(idBlock.getNextId());
+        } catch (UnavailableIdException e) {
+            idBlock = allocator.allocateUniqueIdBlock();
+            return new FlowId(idBlock.getNextId());
+        }
+    }
+}
diff --git a/src/test/java/net/onrc/onos/api/flowmanager/FlowIdTest.java b/src/test/java/net/onrc/onos/api/flowmanager/FlowIdTest.java
new file mode 100644
index 0000000..49981b0
--- /dev/null
+++ b/src/test/java/net/onrc/onos/api/flowmanager/FlowIdTest.java
@@ -0,0 +1,40 @@
+package net.onrc.onos.api.flowmanager;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import org.junit.Test;
+
+public class FlowIdTest {
+
+    /**
+     * Tests FlowId's equals method.
+     */
+    @Test
+    public void testEquals() {
+        FlowId flow1 = new FlowId(0L);
+        FlowId flow2 = new FlowId(1L);
+        FlowId flow3 = new FlowId(2L);
+        FlowId flow4 = new FlowId(1L);
+
+        assertTrue(flow1.equals(flow1));
+        assertTrue(flow2.equals(flow2));
+        assertTrue(flow3.equals(flow3));
+        assertTrue(flow4.equals(flow4));
+
+        assertFalse(flow1.equals(flow2));
+        assertFalse(flow1.equals(flow3));
+        assertFalse(flow1.equals(flow4));
+        assertFalse(flow2.equals(flow1));
+        assertFalse(flow2.equals(flow3));
+        assertFalse(flow3.equals(flow1));
+        assertFalse(flow3.equals(flow2));
+        assertFalse(flow3.equals(flow4));
+        assertFalse(flow4.equals(flow1));
+        assertFalse(flow4.equals(flow3));
+
+        assertTrue(flow2.equals(flow4));
+        assertTrue(flow4.equals(flow2));
+    }
+
+}
diff --git a/src/test/java/net/onrc/onos/core/flowmanager/FlowIdGeneratorWithIdBlockAllocatorTest.java b/src/test/java/net/onrc/onos/core/flowmanager/FlowIdGeneratorWithIdBlockAllocatorTest.java
new file mode 100644
index 0000000..9546f6e
--- /dev/null
+++ b/src/test/java/net/onrc/onos/core/flowmanager/FlowIdGeneratorWithIdBlockAllocatorTest.java
@@ -0,0 +1,48 @@
+package net.onrc.onos.core.flowmanager;
+
+import static org.easymock.EasyMock.createMock;
+import static org.easymock.EasyMock.expect;
+import static org.easymock.EasyMock.replay;
+import static org.hamcrest.Matchers.is;
+import static org.junit.Assert.assertThat;
+import net.onrc.onos.api.flowmanager.FlowId;
+import net.onrc.onos.core.util.IdBlock;
+import net.onrc.onos.core.util.IdBlockAllocator;
+
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Tests {@link FlowIdGeneratorWithIdBlockAllocator} class.
+ */
+public class FlowIdGeneratorWithIdBlockAllocatorTest {
+    private IdBlockAllocator allocator;
+    private FlowIdGeneratorWithIdBlockAllocator flowIdGenerator;
+
+    @Before
+    public void setUp() {
+        allocator = createMock(IdBlockAllocator.class);
+
+    }
+
+    /**
+     * Tests generated FlowId sequences using two {@link IdBlock blocks}.
+     */
+    @Test
+    public void testIds() {
+        expect(allocator.allocateUniqueIdBlock())
+                .andReturn(new IdBlock(0, 3))
+                .andReturn(new IdBlock(4, 3));
+
+        replay(allocator);
+        flowIdGenerator = new FlowIdGeneratorWithIdBlockAllocator(allocator);
+
+        assertThat(flowIdGenerator.getNewId(), is(new FlowId(0L)));
+        assertThat(flowIdGenerator.getNewId(), is(new FlowId(1L)));
+        assertThat(flowIdGenerator.getNewId(), is(new FlowId(2L)));
+
+        assertThat(flowIdGenerator.getNewId(), is(new FlowId(4L)));
+        assertThat(flowIdGenerator.getNewId(), is(new FlowId(5L)));
+        assertThat(flowIdGenerator.getNewId(), is(new FlowId(6L)));
+    }
+}
diff --git a/src/test/java/net/onrc/onos/core/newintent/PathFlowIntentTest.java b/src/test/java/net/onrc/onos/core/newintent/PathFlowIntentTest.java
index 6c83e86..c9da728 100644
--- a/src/test/java/net/onrc/onos/core/newintent/PathFlowIntentTest.java
+++ b/src/test/java/net/onrc/onos/core/newintent/PathFlowIntentTest.java
@@ -19,7 +19,7 @@
 
     private final IntentId intentId1 = new IntentId(123);
     private final IntentId intentId2 = new IntentId(456);
-    private final FlowId flowId1 = new FlowId("path1");
+    private final FlowId flowId1 = new FlowId(1L);
     private final PacketMatch match = new PacketMatchBuilder().build();
     private final PortNumber port = new PortNumber((short) 1);
 
diff --git a/src/test/java/net/onrc/onos/core/newintent/SingleDstTreeFlowIntentTest.java b/src/test/java/net/onrc/onos/core/newintent/SingleDstTreeFlowIntentTest.java
index 4ad202e..3799889 100644
--- a/src/test/java/net/onrc/onos/core/newintent/SingleDstTreeFlowIntentTest.java
+++ b/src/test/java/net/onrc/onos/core/newintent/SingleDstTreeFlowIntentTest.java
@@ -22,7 +22,7 @@
 
     private final IntentId intentId1 = new IntentId(1L);
     private final IntentId intentId2 = new IntentId(2L);
-    private final FlowId flowId1 = new FlowId("intent1");
+    private final FlowId flowId1 = new FlowId(1L);
     private final PacketMatch match = new PacketMatchBuilder().build();
     private final short port1 = (short) 1;
     private final short port2 = (short) 2;
diff --git a/src/test/java/net/onrc/onos/core/newintent/SingleSrcTreeFlowIntentTest.java b/src/test/java/net/onrc/onos/core/newintent/SingleSrcTreeFlowIntentTest.java
index 3330e47..cfd9391 100644
--- a/src/test/java/net/onrc/onos/core/newintent/SingleSrcTreeFlowIntentTest.java
+++ b/src/test/java/net/onrc/onos/core/newintent/SingleSrcTreeFlowIntentTest.java
@@ -25,8 +25,8 @@
 
     private final IntentId intentId1 = new IntentId(1L);
     private final IntentId intentId2 = new IntentId(2L);
-    private final FlowId flowId1 = new FlowId("tree1");
-    private final FlowId flowId2 = new FlowId("tree2");
+    private final FlowId flowId1 = new FlowId(1L);
+    private final FlowId flowId2 = new FlowId(2L);
     private final Dpid dpid1 = new Dpid(1);
     private final Dpid dpid2 = new Dpid(2);
     private final Dpid dpid3 = new Dpid(3);
