Moved abstract client one level up

It’s better to keep it separate from providers.