refactoring of ValuePattern and ValuePatternInformation