Implemented Command Pattern