This gives a contract the same ability to interact with other contracts (with its address as `msg.sender`), as an externally-owned account, right? function call(address _contract, bytes calldata _calldata) external returns (bool, bytes memory) { return _contract.call(_calldata); }