In general, the code can be broken into several areas:
- DerbyXML support. XML file reading/writing, ways to "listen" to changes that are made
- Node discover support (via Bonjour/etc...)
- Protocol handlers
- Managers that take protocol commands and apply the results to the DerbyXML
- General purpose utilities, such as "stop watches"