refactored to work with features, not lists