Thanks for this PR, I’ll have a deeper look ASAP. I really like the idea but is this `apply` method required?