command pattern added