[FEATURE] refactor api entities with entity wrapper classes

__Tasks:__

- [x] gather feedback for my changes
- [ ] submit changes to the documentation


__Informations:__

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | yes
| Tests pass?   | yes
| Fixed tickets | none
| Doc           | none
This logic seems to be repeated. Maybe consider moving it into a parent class?

e.g. 

````php
return $this->foobar($this->getFileVersion(), function ($m) { return $m->getTitle(); });
// or
return $this->foobar($this->getFileVersion(), 'getTitle');
````

maybe