Change Transport to use native functions instead of custom traits