What I would like to accomplish is this:

 1. Allow emacs daemon to start with my start up applications like normal
 2. When I open an emacs frame I would like only the first one to start with my rss news feed from `elfeed`
 3. When I open another frame I would like it to just open to the scratch buffer

I start the emacs daemon upon start up on startup with `emacs --daemon` added to my Autostart list. I have `emacsclient -a "" -c "$@"` bound to my launcher on my dock. 

In my `.emacs` file I initialize `elfeed` just fine but my way of trying to start it is:


    (elfeed-update) ;; Update elfeed when daemon starts
    (defun start-elfeed ()
      "This function will start elfeed and update it."
      (if (not (get-buffer "*elfeed-search*"))
          (progn
    	   (elfeed)
    	   (switch-to-buffer "*elfeed-search*")
    	)))
    (add-hook 'after-make-frame-functions 'start-elfeed)

Now when I start emacs without the daemon it starts up in the `scratch` buffer and `elfeed` has not started, even in a background buffer. When I start it with `emacsclient -a "" -c "$@"` the daemon seems to start but a frame never pops up. In the terminal I get this error:

`*ERROR*: Wrong number of arguments: (lambda nil "This function will start elfeed and update it." (if (not (get-buffer "*elfeed-search*")) (progn (elfeed) (switch-to-buffer "*elfeed-search*")))), 1`

I am new to customizing emacs with elisp and could use some help here. Does that error mean that my `start-elfeed` function has the wrong number of arguments or am I using the `after-make-frame-functions` hook wrong? 

Thank you for any pointers here. 



Some other info:

 - Distro: Xubuntu 14.04
 - Emacs 24.5

**Edit Nov 11**
I changed my function to be like this now:

    (defun start-elfeed (&optional frame)
      "This function will start elfeed and update it.  I think it needs FRAME Passed to it."
      (if (not (get-buffer "*elfeed-search*"))
          (progn
    	(elfeed)
    	(while (not (get-buffer "*elfeed-search*")))
    	(switch-to-buffer "*elfeed-search*")
    	)))
    (add-hook 'server-visit-hook 'start-elfeed)
    (add-hook 'after-make-frame-functions 'start-elfeed)

Now it calls `(elfeed)` but I don't think it is finished when it continues on to the `(switch-to-buffer "*elfeed-search*")` function. The `*scratch*` buffer is still the initial buffer but now there is a buffer called `*elfeed-search*`, with the RSS feeds in it. It seems like the `switch-to-buffer` call is being skipped over.