Factored provider interfaces, added generic exception mapper