contract UpgradedStandardToken is StandardToken {
    // those methods are called by the legacy contract
    // and they must ensure msg.sender to be the contract address
    function transferByLegacy(
        address from,
        address to,
        uint256 value
    ) public returns (bool);

    function transferFromByLegacy(
        address sender,
        address from,
        address spender,
        uint256 value
    ) public returns (bool);

    function approveByLegacy(
        address from,
        address spender,
        uint256 value
    ) public returns (bool);
}
function transferByLegacy(
    address from,
    address to,
    uint256 value
) public returns (bool);

// those methods are called by the legacy contract
// and they must ensure msg.sender to be the contract address