Playing around with model-view-controller, observer pattern, and GUI layout in Java