diff --git a/lib/seahorse/client/handler_list.rb b/lib/seahorse/client/handler_list.rb
index <HASH>..<HASH> 100644
--- a/lib/seahorse/client/handler_list.rb
+++ b/lib/seahorse/client/handler_list.rb
@@ -17,6 +17,22 @@ module Seahorse
 
       include Enumerable
 
+      # @api private
+      def initialize
+        @list = []
+      end
+
+      # @param [Class] handler_class
+      # @option options [Symbol] priority (:
+      def add(handler_class)
+        @list << handler_class
+      end
+
+      # Yields the handlers.
+      def each(&block)
+        @list.each(&block)
+      end
+
     end
   end
 end
diff --git a/test/seahorse/client/handler_list_test.rb b/test/seahorse/client/handler_list_test.rb
index <HASH>..<HASH> 100644
--- a/test/seahorse/client/handler_list_test.rb
+++ b/test/seahorse/client/handler_list_test.rb
@@ -25,6 +25,16 @@ module Seahorse
         handlers.must_be_kind_of(Enumerable)
       end
 
+      describe '#add' do
+
+        it 'adds a handler' do
+          handler = Class.new
+          handlers.add(handler)
+          handlers.to_a.must_equal([handler])
+        end
+
+      end
+
     end
   end
 end
You can now add and enumerate handlers with HandlerList.