function withdraw() public returns (bool success){
        require(block.timestamp > releaseDates[0]);
        update(msg.sender);
        uint256 amount = scaledDividendBalanceOf[msg.sender] / scaling;
        scaledDividendBalanceOf[msg.sender] %= scaling;  
        balances[msg.sender] += amount;
        balances[this] -= amount;
        emit Transfer(this, msg.sender, amount);
        return true;
    }