added command pattern demo