add javadoc and update README