Lots of changes, starting to implement javadoc