add an attribute provider interface, and deprecate filter and facet provider interfaces