Refactored most of the project
New matcher to throw new exception so that we can get a warning instead of failure