How complex should the GUI be ? I am unsure as to how sophisticated I should make the user interface. Is it wise to play exactly to the spec e.g. Only allow searching on the 2 fields cited or provide more ? Do I provide sorting or not - this is particularly worrying as there is a mention in the spec that elaborate algorithms should not be used where standard solutions already exist, but on the other hand it would seem a natural feature to include for a JTable. Are toolbars necessary given the limited functionality ? Do I bother with status bars, MicroHelp About boxes etc ? Should I provide asynchronous requests to the remote client by implementing multithreading ? Does any of this matter much ? Also thought I'd sound this one out. With a mind to anticipating future requirements (referred to in the spec) I was going to provide an xml file that defined the JComponents, fields to be queried on, validation required, data type etc along with code to dynamically build these as controls at run time. I think I have decided against this, partly due to a lack of confidence in whether the org.xml.* packages are admissable (despite being part of the Production JDK) and partly because I feel it may be seen as over-engineering. Also, there are 2 perfectly reasonable implementations of JTable utility classes provided in the demos section of the JDK. In the spirit of code reuse It would seem sensible to include these (With accreditation of course), but I have doubts the examiners would see it that way. Any thoughts ?