implementing complete faceted search