write blog about command pattern