with versioning service and refactorings underneath (see details)

- id generation pushed out of model
- versions do not generate identifiers, services do
- versions do not require identifiers
- copies include identifiers