#pattern-matching + #case-classes - added a case where case-class accepts a function as argument for its apply-method