Added even more comments and javadoc documentation.