Add Command Pattern
merged