diff --git a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowPusher.java b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowPusher.java
index 54da3fd..07cb719 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowPusher.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowPusher.java
@@ -1,21 +1,14 @@
 package net.onrc.onos.ofcontroller.flowmanager;
 
-import groovy.util.MapEntry;
-
 import java.io.IOException;
-import java.util.ArrayList;
 import java.util.HashMap;
-import java.util.List;
 import java.util.Map;
 import java.util.Queue;
-import java.util.Set;
 
 import org.openflow.protocol.OFMessage;
-import org.openflow.protocol.OFType;
 
 import net.floodlightcontroller.core.FloodlightContext;
 import net.floodlightcontroller.core.IOFSwitch;
-import net.floodlightcontroller.util.OFMessageDamper;
 
 /**
  * FlowPusher intermediates flow_mod sent from FlowManager/FlowSync to switches.
@@ -27,12 +20,18 @@
 	private FloodlightContext context;
 	private Thread thread;
 	
+	/**
+	 * Represents state of queue.
+	 * This is used for calculation of rate.
+	 * @author Naoki Shiota
+	 *
+	 */
 	private static class QueueState {
 		long last_sent_time = 0;
 		long last_sent_size = 0;
 		long max_rate;
 	}
-	
+
 	private Map<IOFSwitch, Queue<OFMessage> > queues =
 			new HashMap<IOFSwitch, Queue<OFMessage> >();
 	private Map<Queue<OFMessage>, QueueState> queue_states =
@@ -80,7 +79,7 @@
 				// sleep while all queues are empty
 				boolean sleep = true;
 				do {
-					// TODO
+					// TODO check if queues are empty
 				} while (sleep);
 			}
 		}
@@ -90,8 +89,11 @@
 		this.context = context;
 	}
 	
-	public void assignQueue(IOFSwitch sw, Queue<OFMessage> queue) {
+	public void assignQueue(IOFSwitch sw, Queue<OFMessage> queue, long max_rate) {
 		queues.put(sw, queue);
+		QueueState state = new QueueState();
+		state.max_rate = max_rate;
+		queue_states.put(queue, state);
 	}
 
 	public void startProcess() {
