Decoupled matcher from tokens
Updated prototype