Added the Command Pattern