I always wanted to travel to Iran, and was recommended to book through SURFIRAN by my friend.
I had an excellent experience, and would recommend travelers to book through travel agency while visiting here if you can't speak Farsi. Many people spoke English, but the efficiency with an agency is unmatched.
My family of 4 visited, and SURFIRAN booked us a private tour. We had a guide, a van and driver, just for us. The car waited for us everywhere we went, and with the Farsi speaking guide, everything was so much easier.
Tehran, Kashan, Esfahan, Yazd, Persepolis, and Shiraz were the cities we visited. We pretty much covered everything in these cities.
Lastly, I want to say Iran was so friendly and safe. Just a simple search on YouTube, all the travelers who visited Iran was surprised about the country was very safe (not as the commonly negative portrayal). If your interested, I think just go, don't think too much and enjoy the warm hospitality, and amazing history there.
I loved my trip and would look forward to visiting again soon to the northern parts.