add javadoc and update readme