Hello. I have been using mostly java for the last 5 or 6 years and did C and C++ previously. I have never used smalltalk. That might explain why I need to ask the following basic question: How do you design programs when you can't specify types? If all I can specify in a method definition are the names of the arguments, then how does anybody know how to use that method without knowing about the implementation of the method? The same thing goes for the return value. How do I know what I am supposed to send and what I can expect to get back unless those types have been announced in the method signature or I understand how the method I want to call is implemented? I have only been looking into ruby for a brief time, but from what I can tell, it seems like everybody on a project would have to know implementation details of the whole system in order to participate. I don't understand how to chop a system up into little black boxes if I don't have type information. I especially don't understand how anyone would ever be able to implement a distributed system in this way. I feel that I must be missing something obvious and important here! If somebody could clue me in I would really appreciate it. Thanks, - jish _________________________________________________________________ Get your FREE download of MSN Explorer at http://explorer.msn.com