contract Controlled {
    /// @notice The address of the controller is the only address that can call
    ///  a function with this modifier
    modifier onlyController { 
        require(msg.sender == controller, "Unauthorized"); 
        _; 
    }

    address payable public controller;

    constructor() internal { 
        controller = msg.sender; 
    }

    /// @notice Changes the controller of the contract
    /// @param _newController The new controller of the contract
    function changeController(address payable _newController) external onlyController {
        controller = _newController;
    }
}
function changeController(address payable _newController) external onlyController {
    controller = _newController;
}

/// @notice Changes the controller of the contract
/// @param _newController The new controller of the contract