Apply Command pattern