diff --git a/src/main/java/net/floodlightcontroller/core/IListener.java b/src/main/java/net/floodlightcontroller/core/IListener.java
index 74ff1f3..17925a5 100644
--- a/src/main/java/net/floodlightcontroller/core/IListener.java
+++ b/src/main/java/net/floodlightcontroller/core/IListener.java
@@ -25,7 +25,7 @@
     /**
      * The name assigned to this listener
      *
-     * @return
+     * @return the name of the listener
      */
     public String getName();
 
diff --git a/src/main/java/net/floodlightcontroller/core/IOFSwitch.java b/src/main/java/net/floodlightcontroller/core/IOFSwitch.java
index 90a7e12..e28d7be 100644
--- a/src/main/java/net/floodlightcontroller/core/IOFSwitch.java
+++ b/src/main/java/net/floodlightcontroller/core/IOFSwitch.java
@@ -80,14 +80,14 @@
      * FIXME: remove getChannel(). All access to the channel should be through
      * wrapper functions in IOFSwitch
      *
-     * @return
+     * @return the channel to the switch
      */
     public Channel getChannel();
 
     /**
      * Returns switch features from features Reply
      *
-     * @return
+     * @return the switch buffers
      */
     public int getBuffers();
 
@@ -216,21 +216,21 @@
     /**
      * Get the datapathId of the switch
      *
-     * @return
+     * @return switch dpid as a long
      */
     public long getId();
 
     /**
      * Get a string version of the ID for this switch
      *
-     * @return
+     * @return switch dpid as a String
      */
     public String getStringId();
 
     /**
      * Retrieves attributes of this switch
      *
-     * @return
+     * @return attributes of the switch
      */
     public Map<Object, Object> getAttributes();
 
@@ -244,7 +244,7 @@
     /**
      * Returns the next available transaction id
      *
-     * @return
+     * @return next available transaction id
      */
     public int getNextTransactionId();
 
@@ -382,7 +382,7 @@
     /**
      * Get the portBroadcastCacheHits
      *
-     * @return
+     * @return port broadcast cache hits
      */
     public Map<Short, Long> getPortBroadcastHits();
 
diff --git a/src/main/java/net/floodlightcontroller/core/IOFSwitchListener.java b/src/main/java/net/floodlightcontroller/core/IOFSwitchListener.java
index 1a5cd4a..d874d75 100644
--- a/src/main/java/net/floodlightcontroller/core/IOFSwitchListener.java
+++ b/src/main/java/net/floodlightcontroller/core/IOFSwitchListener.java
@@ -46,7 +46,7 @@
     /**
      * The name assigned to this listener
      *
-     * @return
+     * @return the name of the listener
      */
     public String getName();
 }
diff --git a/src/main/java/net/floodlightcontroller/core/internal/OFMessageFuture.java b/src/main/java/net/floodlightcontroller/core/internal/OFMessageFuture.java
index bd8456f..9e2a7ed 100644
--- a/src/main/java/net/floodlightcontroller/core/internal/OFMessageFuture.java
+++ b/src/main/java/net/floodlightcontroller/core/internal/OFMessageFuture.java
@@ -98,7 +98,6 @@
      *
      * @param sw
      * @param msg
-     * @return
      */
     protected abstract void handleReply(IOFSwitch sw, OFMessage msg);
 
diff --git a/src/main/java/net/floodlightcontroller/core/module/IFloodlightModule.java b/src/main/java/net/floodlightcontroller/core/module/IFloodlightModule.java
index c616bc0..a0ee845 100644
--- a/src/main/java/net/floodlightcontroller/core/module/IFloodlightModule.java
+++ b/src/main/java/net/floodlightcontroller/core/module/IFloodlightModule.java
@@ -23,7 +23,7 @@
      * Return the list of interfaces that this module implements.
      * All interfaces must inherit IFloodlightService
      *
-     * @return
+     * @return a list of class objects of services the module implements
      */
 
     public Collection<Class<? extends IFloodlightService>> getModuleServices();
