Clean reimplementation to fix issue #2509

Please do not yet merge this one, it is to find the best solution
We should have them one common type CallType to prevent a lot of code duplication to handle the exactly same situation in with two classes, but yeah sounds very wrong, you're right. What about `RemotePropagatable` or smt like this?