I think we should extract that logic and reuse in the two implementations. I don't see it evolve differently in both implementation and if we ever find a bug in it, it will have to be fixed for both implementations.