Refactored validate match alot! Much more generic