class CommandManagerImpl implements CommandManager<C, V>,
                                                 HasCommandListener<CommandListener<C, V>> {

    @Override
    public CommandResult<V> undo(final C context,
                                 final Command<C, V> command) {
        logCommand("UNDO",
                   command);
        final CommandResult<V> result = command.undo(context);
        if (null != listener) {
            listener.onUndo(context,
                            command,
                            result);
        }
        logResult(result);
        return result;
    }

    public  CommandManagerImpl();

}