I'm at a point when my tasks got so complex and interdependant that I am thinking of learning classes finally. My understanding is that classes act more or less like sub routines and functions where one calls them from some point in the program to perform some task, only do the calling differently. Now, the question is how classes are beneficial over using the traditional sub procedures and functions from software performance and architecture standpoint? Are there sagnificant coding efficiency and code reusabilty gains? How using classes made you a better designer?