exploring using the command pattern to encapsulate UI logic in a more testable manner