Updates and refactorings

Presently, the Maven project cannot build, as the integration test fails.  In cleaning this up, I noticed several other improvements I though would help make the project more robust and useful.  I believe all my changes are backwards compatible, however I left in several comments suggesting future possible improvements if you don't mind breaking backwards compatibility.