major refactorings, style checks, guice, and further testing