Base implementation

I'd just pass the raw repository to those, while exposing only the `UserRepositoryInterface` in other locations in the code.