adding surface words as features, some refactoring