add a Java version of puddle : Puddle.java