Implementing Command Design Pattern