first version in Java
first version in Java