Introduce own button implementation.
Use new button implementation in action listener.
Remove double reference to model.
Let box button observe the box.
Add some unittests.
Fix row and column range validation.