first pass at keyword argument matching