Improvements and bug fixes

* Added traceDependents function
* Fixed selection list bugs
* Refactored classes
* Encapsulated node selection functionality
* Renamed classes to conform to Java object naming conventions