Rough draft of the command pattern