refactor - grp into abstract matcher, add csv util