function () payable atStage(Stages.InProgress) {

            
        if (msg.value < minAcceptedAmount) {
            throw;
        }
        
        if(close == true){
            throw;
        }
 
        uint256 received = msg.value;
        uint256 valueInSCL = toSTAR(msg.value);


        if (valueInSCL == 0) {
            throw;
        }

        if (!starToken.issue(msg.sender, valueInSCL)) {
            throw;
        }

        address1.transfer(received/5);
        address2.transfer(received/5);
        address3.transfer(received/5);
        address4.transfer(received/5);
        address5.transfer(received/5);

        raised += received;

        if (starToken.totalSupply() >= maxSupply) {
            stage = Stages.Ended;
        }
    }