taking a look at apply-generic