function presaleUnfreeze(uint step) external{
        
        assert(unfroze[step][msg.sender] == false);
        assert(DRC.freezeOf(msg.sender) > 0 );
        assert(unfreezeStartTime > 0);
        assert(msg.sender != platform);
        
        uint256 freeze  = DRC.freezeOf(msg.sender);
        uint256 unfreezeAmount = 0;

        if(step == 1){
            require( block.timestamp > (unfreezeStartTime + 30 days));
            unfreezeAmount = freeze / 3;
        }
        else if(step == 2){
            require( block.timestamp > (unfreezeStartTime + 60 days));
            unfreezeAmount = freeze / 2;
        }
        else if(step == 3){
            require( block.timestamp > (unfreezeStartTime + 90 days));
            unfreezeAmount = freeze;
        }
        else{
            throw ;
        }
        
        require(unfreezeAmount > 0 );
        
        DRC.unfreeze(msg.sender,unfreezeAmount);
        unfroze[step][msg.sender] = true;
    }