`Transferrable` is currently problematic as its a placeholder for a better solution, but I think the other two should be in their own module.