add some info and a java version of the implementation