implement deferred command execution