created a facade and service provider and specific exceptions