Add MatchValueFunction class and unit tests
Modify classes & tests to use MatchValueFunction