for cost effective solution,
get a GOOD MICROFIBRE CLOTH, i use TWO SETS, one for FILTER (more frequent cleaning), one for LENS.
you will also need a BLOWER.
to clean any surface, BLOW it first, then gently wipe the surface. if there are marks that do not come off that are definitely not permanent (it takes quite something to damage lens surface unless the coating is horrible, rare these days).. use something like eclipse solution or E2 (which isn't that expensive if you think about it, my little bottle has lasted me nearly 8 months and going and i clean my lenses regularly with it, along with sensor).. put on the cloth, repeat the gentle circular motion.
lenspen is good, no doubt, but not cost effective because not reusable. also, effectiveness reduced after some time.
microfibre cloth, just throw into washing machine, dry, hey presto, it will be as good as new.♦