What about move all this logic to `InMemory`? This would be more clearer and you will be able to aways expect a collection of `Role` instances from providers :D