remove generic from Matcher -> add checks with instanceof