Indeed, the service is not really implemented, I'm just doing the refactoring for now. I want feedback that this makes sense, since it's probably more important that the service itself.
See each commit for more details.
Depends !43 so first two commits should not be reviewed here