refactored + basic faceting