add more facets and improve interface