Adding Command Design pattern