Updated javadoc
Rewrote equals methods to be more java-y