refactoring everything
adding unit tests, updating documentation, updating sample node config, and revising a few things
adding list of dependencies in the README for those (like me) that would like to embed the non-monolithic jar in other projects