implemented most of matchup