first version of javadocs (most documentation is still incomplete)