Fixed some bugs and added some javadoc.