command pattern implementation progress