diff --git a/ipaacalib/java/src/ipaaca/Buffer.java b/ipaacalib/java/src/ipaaca/Buffer.java
index e335e1f4175e82a68e8e6b2e7873a724f0c94d87..71c75b70bc388c0c139d532ff78a0a12ca0e025c 100644
--- a/ipaacalib/java/src/ipaaca/Buffer.java
+++ b/ipaacalib/java/src/ipaaca/Buffer.java
@@ -1,7 +1,9 @@
 package ipaaca;
 
 import java.util.ArrayList;
+import java.util.EnumSet;
 import java.util.List;
+import java.util.Set;
 import java.util.UUID;
 
 /**
@@ -63,10 +65,35 @@ public abstract class Buffer
     // """
     // handler = IUEventHandler(handler_function=handler_function, for_event_types=for_event_types, for_categories=for_categories)
     // self._iu_event_handlers.append(handler)
+
     public void registerHandler(IUEventHandler handler)
     {
         eventHandlers.add(handler);
     }
+   
+    public void registerHandler(HandlerFunctor func) {
+    	IUEventHandler handler;
+    	handler = new IUEventHandler(func);
+    	registerHandler(handler);
+    }
+    
+    public void registerHandler(HandlerFunctor func, Set<String> categories) {
+    	IUEventHandler handler;
+    	handler = new IUEventHandler(func, categories);
+    	registerHandler(handler);
+    }
+    
+    public void registerHandler(HandlerFunctor func, EnumSet<IUEventType> eventTypes) {
+    	IUEventHandler handler;
+    	handler = new IUEventHandler(func, eventTypes);
+    	registerHandler(handler);
+    }
+   
+    public void registerHandler(HandlerFunctor func, EnumSet<IUEventType> eventTypes, Set<String> categories) {
+    	IUEventHandler handler;
+    	handler = new IUEventHandler(func, eventTypes, categories);
+    	registerHandler(handler);
+    }
 
     // def call_iu_event_handlers(self, uid, local, event_type, category):
     // """Call registered IU event handler functions registered for this event_type and category."""