Formatting. Tiny fixes in JavaDoc. Fixed some type parameters. Replaced concrete classes with interfaces.