matcher is separate class