function Redeem(uint32 bondId) 
        public
    {
        var bond = Bonds[bondId];
        
        require(CanBeRedeemed(bond));
        
        
        require(bond.owner == msg.sender);
        
        
        bond.redeemTime = uint32(block.timestamp);
        
        
        if (IsPremature(bond.maturityTime))
        {
            bond.maturityPrice = div(
                mul(bond.nominalPrice, PrematureRedeemPartInPercent), 
                100
                );
        }
        
        
        Redeemed(bond.id, bond.owner);
        
        
        
        bond.owner.transfer(bond.maturityPrice);
    }