Is there a reason to remove the virtual in favour of the complex `data()` integration? I'm not against it (the speed loss is marginal) but curious.