Command pattern first revision.