playing with command pattern