adjusted private members, added function eval in match and added some sugar