Campbell Ritchie wrote:I don't like to see so much code in the main method...
@mike: I wholeheartedly agree with Campbell (which is rare enough in itself to deserve your attention

). And if you're interested in a couple of methodologies similar to the one he describes, have a look at the
MainIsAPain page.
Another thing that might help is a
word analysis of your requirements. It's by no means comprehensive, but it's often a good place to start, and it's very simple.
1. Go through your requirements and pick out all the verbs and nouns and make lists of them.
2. The nouns will usually point you to classes that you'll need (or fields in those classes).
3. The verbs will point you to methods that you're likely to need.
Like I say, it's very crude, but it can sometimes help if you're overwhelmed by "trying to think about everything at once" because it's simple, focused, and
non-programmatic (ie, it's exercising a different part of your brain). It may also help you to break up some of that monolithic code that right now is all in your
main() method.
HIH
Winston