[WIP] Abstract models

To ease extensibility in projects

| Q                   | A
| ------------------- | ---
| Bug fix?            |
| New feature?        |
| BC breaks?          |
| Tests pass?         |
| Scenarios pass?     |
| Checkstyle issues?  |
| Changelog updated?  |
| Fixed tickets       |
| Doc PR              |