contract Restricted is Ownable {

    //MonethaAddress set event
    event MonethaAddressSet(
        address _address,
        bool _isMonethaAddress
    );

    mapping (address => bool) public isMonethaAddress;

    /**
     *  Restrict methods in such way, that they can be invoked only by monethaAddress account.
     */
    modifier onlyMonetha() {
        require(isMonethaAddress[msg.sender]);
        _;
    }

    /**
     *  Allows owner to set new monetha address
     */
    function setMonethaAddress(address _address, bool _isMonethaAddress) onlyOwner public {
        isMonethaAddress[_address] = _isMonethaAddress;

        emit MonethaAddressSet(_address, _isMonethaAddress);
    }
}
/** @title Restricted
 *  Exposes onlyMonetha modifier
 */
function setMonethaAddress(address _address, bool _isMonethaAddress) onlyOwner public {
    isMonethaAddress[_address] = _isMonethaAddress;

    emit MonethaAddressSet(_address, _isMonethaAddress);
}

/**
 *  Allows owner to set new monetha address
 */