I don't really mind duplicating the call to `DoWithIndex` in two places; normally this would be a one liner + error checking.  Here's it's a callback only because templates are protected by a `RWMutex` that's handled by the template manager.  

In the case of `indexFunc`, I don't like handling all the possible cases of a situation in a single function, I find it's confusing to hold all the possible states in my head at the same time, so I prefer branching into separate functions to deal with the separate problems.  I guess I'm somehow retarded because I can't cope with too much complexity ^^, so I need to break 'complex' code in a multitude of little parts.

The situation would be different if multilingual was a core feature, but it's not the case here.  Multilingual support is an option, so I think it's preferable to delegate its special case to another set of function.

Also I don't see 'forgetting about the code' a convincing argument to keep it in `indexFunc`.