contract Restrictable is Ownable {
    
    address public restrictedAddress;
    
    event RestrictedAddressChanged(address indexed restrictedAddress);
    
    function Restrictable() {
        restrictedAddress = address(0);
    }
    
    //that function could be called only ONCE!!! After that nothing could be reverted!!! 
    function setRestrictedAddress(address _restrictedAddress) onlyOwner public {
      restrictedAddress = _restrictedAddress;
      RestrictedAddressChanged(_restrictedAddress);
      transferOwnership(_restrictedAddress);
    }
    
    modifier notRestricted(address tryTo) {
        if(tryTo == restrictedAddress) {
            revert();
        }
        _;
    }
}
function setRestrictedAddress(address _restrictedAddress) onlyOwner public {
  restrictedAddress = _restrictedAddress;
  RestrictedAddressChanged(_restrictedAddress);
  transferOwnership(_restrictedAddress);
}

//that function could be called only ONCE!!! After that nothing could be reverted!!! 