refactors
* replace the callback system; it was overengineered
* clean up some of our objects
refactor the node class and modularize it