Just a quick question. I realised a potential issue with searching. When a user searches for a records the system has to call find(String criteria) which returns a list of ids of contractors. Then in order to actually display the details of these contractors the system has to, for each contractor, call read(int recNo) which returns a String of the data for that contractor. The problem is if we have 10 calls to read(int recNo) and we make the first call and the server swaps us out then it is possible that although prior to your call that contractor was not booked he could get booked by the thread that swapped you out. If this happens then when the JTable is displayed for you the current state of affairs will not be represented. I doubt we need to do anything about this but it is an issue.