Negotiation is way easier than what I see people suggest to do. Just print out the Edmunds price, and take it to your dealer. No need to pay more as it is actually the average price that people actually pay. I always pre-negotiate before I visit the dealers at all. I emailed a few dealers and one of them quoted $300 below the Edmunds price without me even asking. You then reach an understanding that you can get any car from them for a similar deal. It has worked for me four times in a row.
Just realize it is normal for them to add in their doc fee (~$320 in my area), registry fee, and sales taxes - but absolutely no other fees.
Also, when I get that price, I don't ask for more. It really makes the buying experience more pleasant to have something like that to go by as when the dealers see it, they so far seem to think it is fair enough and have never said no. If they do, just try 4-5 dealers and 1-2 will say yes.