split matcher code to matcher.clj