# File lib/cool.io/eventmachine.rb, line 81
    def start_server(addr, port, handler = Connection, *args, &block)
      # make sure we're a 'real' class here
      klass = if (handler and handler.is_a?(Class))
        handler
      else
        Class.new( Connection ) {handler and include handler}
      end

      server = Coolio::TCPServer.new(addr, port, CallsBackToEM, *args) do |wrapped_child|
        conn = klass.new(wrapped_child)
        conn.heres_your_socket(wrapped_child) # ideally NOT have this :)
        wrapped_child.call_back_to_this(conn)
        block.call(conn) if block
      end

      server.attach(Coolio::Loop.default)
    end