Hey @mej71, everyone!
I think this is an awesome work you've done here. My congratulations!
I've been working on a friend's project lately and found a very little improvement which could be done:
I see you are overriding the pbEndSurf function. And here, although you are storing the original...