new matching function, changed populate