It would be much nicer to implement this method only on the front facing object using the `dimensionCount` and `createDimension` methods of the backend:

```c++ 
Dimension appendDimension(DimensionType type) {
    return backend()->createDimension(backend()->dimensionCount() + 1, type);
}
```

This keeps the internal interface smaller.