command pattern book example implementation - part 1 finished