Java, OOP, GUI, unit testing