Should this be an abstract method? What does "match" mean here exactly, or in other words, what's the purpose of this method?