slap a bunch of final's everywhere, upgrade the pom.xml to do unit testing, drop down to JDK 1.6 for wider compatibility, start refactoring of the factory