contract Ownable {
    address public owner;
    
    /** @dev owner transfer event */
    event OwnershipTransferred(address previousOwner, address newOwner);
    
    constructor() internal{
        owner = msg.sender;
    }

    /**
    * @dev Throws if called by any account other than the owner.
    */
    modifier onlyOwner() {
        require(msg.sender == owner);
        _;
    }
    
    /**
    * @dev function thet change the owner of the contract   
    * @param _newOwner The address of the new owner of the contract 
    */
    function transferOwnership(address _newOwner) public onlyOwner { 
        owner = _newOwner;
        emit OwnershipTransferred(msg.sender, _newOwner);
    }
}
/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 *      functions, this simplifies the implementation of "user permissions".
 */
function transferOwnership(address _newOwner) public onlyOwner { 
    owner = _newOwner;
    emit OwnershipTransferred(msg.sender, _newOwner);
}

/**
 * @dev function thet change the owner of the contract   
 * @param _newOwner The address of the new owner of the contract 
 */