refactoring: use FactorValues instead of Strings. Still need some review