java version implemented