I see, that's more or less the way I follow by now. My concern is that while I build tools and objects, I postpone the time when I write the actual program that will do "the task". Beforehand, I used to write a program that more or less did the task, then improve it gradually... easier, but hard to maintain.