Improved and added new interfaces,
implemented methods,
added Javadocs.