Replaced names, new interfaces, new methods, some javadoc