Java Program Model