described the command pattern