Java Program Structure With High Water