fixed some stuff, beefened up the functionality of the matching search and implemented a constant time matching argument