I think you should make it so your Monopoly controller is the action listener because your MonopolyGUIView is doing too much. Your View is also doing the job of the model. The handleRollDie should be the responsibility of the model. The model should notify the view with the current state of the game (i.e. the die rolls and that someone just rolled a die) after performing the die roll. The views only job should be to update itself with the current state of the model. The controller's job should be to update the model and give it the necessary information to update. itself.