function getAdjustedValueDate(address _owner,uint256 _date) public view returns (uint256) {
        uint256 _rawBalance = super.balanceOf(_owner);
        
        if (_rawBalance == 0)
            return 0;
        
        uint256 startLevel = getCompoundingLevel(_owner);

        InterestRateInterface dateTerms;
        if (_date <= announcedMaturityDate)
            dateTerms = currentTerms;
        else
            dateTerms = announcedTerms;

        uint256 dateLevel = dateTerms.getCompoundingLevelDate(_date);
        return _rawBalance.mul(dateLevel).div(startLevel);
    }