Duncan,
Rethinking, or refactoring as it's often referred to, is a common phase during the course of normal software development. Allow me to elaborate.
When initially presented with a problem, most developers are eager to invent a solution. Sometimes, a developer can sit down, code out a solution, and that code will never need to be reworked. That's pretty rare though. Most of the time, a developers first shot at solving a problem will give them greater understanding of the problem, and a proportionately better understanding of what solution would be appropriate FOR that problem.
So, in most cases, an interative design approach is used:
you write code,
figure out how it could be better (more scalable, more maintainable, more portable, etc...) (this is the 'refactoring')
and then rewrite the code
rinse, wash, repeat.
Specific to your code, I think it is a good candidate for rethinking because you are using soft references. In general, anytime you have to resort to soft references, it's time to rethink your approach, becuase there's almost always a better one out there. That's my experience anyways. You were using a base variable name, and appending a digit in order to store different values. In this case, a more elegant solution would be to use an array.
My comment was not meant to be condescending. I apologize if it came across that way. This forum is for programmers of all levels, and putting people down because they want to learn more is certainly not a practice I condone.
happy hacking,
--jim