upgraded to JDK 1.7, JUnit 4, Generics, etc.